Beefy Boxes and Bandwidth Generously Provided by pair Networks
Come for the quick hacks, stay for the epiphanies.
 
PerlMonks  

Re^6: Not understanding 2 sentences in perldoc

by zapdos (Sexton)
on Jul 29, 2020 at 22:01 UTC ( [id://11120032]=note: print w/replies, xml ) Need Help??


in reply to Re^5: Not understanding 2 sentences in perldoc
in thread Not understanding 2 sentences in perldoc

Hi, it's me the anonymous monk.

( $x, $y, $z ) = qw( a b c );

Why the above returns void context?

(my ($x, $y, $z) = qw( 1 2 3 )) = qw( a b c );

Does it return void context in this expression too?

Replies are listed 'Best First'.
Re^7: Not understanding 2 sentences in perldoc
by LanX (Saint) on Jul 29, 2020 at 22:16 UTC
      I see. But I want to know why in my ($x, $y, $z) = qw( 1 2 3 ); it's returning the lvalues in list context and why in ( $x, $y, $z ) = qw( a b c ); it's returning nothing?

      And in the expression (my ($x, $y, $z) = qw( 1 2 3 )) = qw( a b c ); it's returning nothing as well?

        c:\@Work\Perl\monks>perl -wMstrict -le "my ($x, $y, $z); ;; ($x, $y, $z) = qw( 1 2 3 ); print qq{$x, $y, $z}; ;; (($x, $y, $z) = qw( 1 2 3 )) = qw( a b c ); print qq{$x, $y, $z}; ;; ((($x, $y, $z) = qw( 1 2 3 )) = qw( a b c )) = qw(foo bar baz); print qq{$x, $y, $z}; " 1, 2, 3 a, b, c foo, bar, baz
        The expression  ($x, $y, $z) = ... evaluates to a list of assignable values, i.e., lvalues.
        The expression  ($x, $y, $z) = RHS evaluates to the list of assignable values, i.e., lvalues, $x, $y, $z.

        And likewise with

        c:\@Work\Perl\monks>perl -wMstrict -le "my ($x, $y, $z) = qw( 1 2 3 ); print qq{$x, $y, $z}; ;; (my ($u, $v, $w) = qw( 1 2 3 )) = qw( a b c ); print qq{$u, $v, $w}; ;; ((my ($r, $s, $t) = qw( 1 2 3 )) = qw( a b c )) = qw(foo bar baz); print qq{$r, $s, $t}; " 1, 2, 3 a, b, c foo, bar, baz


        Give a man a fish:  <%-{-{-{-<

        • context

          The surroundings or environment. The context given by the surrounding code determines what kind of data a particular expression is expected to return.

        • void context

          A form of scalar context in which an expression is not expected to return any value at all and is evaluated for its side effects alone.

        • side effects

          Something extra that happens when you evaluate an expression. Nowadays it can refer to almost anything. For example, evaluating a simple assignment statement typically has the “side effect” of assigning a value to a variable. ...

        Cheers Rolf
        (addicted to the Perl Programming Language :)
        Wikisyntax for the Monastery

Log In?
Username:
Password:

What's my password?
Create A New User
Domain Nodelet?
Node Status?
node history
Node Type: note [id://11120032]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this?Last hourOther CB clients
Other Users?
Others goofing around in the Monastery: (4)
As of 2024-04-25 12:15 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found