Beefy Boxes and Bandwidth Generously Provided by pair Networks
go ahead... be a heretic

Re^6: Using grep and glob to find directories containing file (list assignment)

by LanX (Bishop)
on Feb 04, 2013 at 09:41 UTC ( #1016919=note: print w/replies, xml ) Need Help??

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

> Lists don't return their length in scalar context


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.


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.

Log In?

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://1016919]
and all is quiet...

How do I use this? | Other CB clients
Other Users?
Others contemplating the Monastery: (6)
As of 2018-06-25 02:39 GMT
Find Nodes?
    Voting Booth?
    Should cpanminus be part of the standard Perl release?

    Results (126 votes). Check out past polls.