in reply to Re^5: Using grep and glob to find directories containing file
in thread Using grep and glob to find directories containing file
Correct!
With "goatse" it's a list _assignment_ = which in scalar context returns the number of list elements assigned.
But this was a scalar assignment.
> my $x = ('a', 'b', 'c');
The LHS of the assignment operator decides about the context.
An example of scalar context of list context of assignment is
while ( ($v,$k) = each %h )
It will terminate as soon as each returns an empty list, not when the lists last element (here $k) is undef.
Clearer now?
Cheers Rolf
PS: you replied to yourself twice.
UPDATE
I think analyzing the op-tree helps understanding the mechanism
lanx@nc10-ubuntu:~/org$ perl -MO=Terse -e'$x= ()=qw(a,b)' LISTOP (0x9bd0fe0) leave [1] OP (0x9be01e8) enter COP (0x9bb8860) nextstate BINOP (0x9b3ca48) sassign BINOP (0x9b21a58) aassign [2] UNOP (0x9b218c0) null [142] OP (0x9be3e40) pushmark SVOP (0x9c14638) const [3] PV (0x9b1dee0) "a,b" UNOP (0x9c14598) null [142] OP (0x9b19820) pushmark OP (0x9b3c980) stub UNOP (0x9be8630) null [15] PADOP (0x9b21940) gvsv GV (0x9b1dec0) *x -e syntax OK
(don't blame me for Larry's decision to call a list assignment aassign)
You see assignment BINOP is like a function called with arguments (RHS,LHS) and RHS is evaluated according to LHS context and assigned to LHS. (thats decided a compile time)
The RHS of the first BINOP is the second BINOP, not a list.