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

"void context" means it returns nothing (or doesn't need to return anything)

see perlglossary

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

  • Comment on Re^7: Not understanding 2 sentences in perldoc

Replies are listed 'Best First'.
Re^8: Not understanding 2 sentences in perldoc
by zapdos (Sexton) on Jul 29, 2020 at 22:30 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:  <%-{-{-{-<

        Arigato gozaimasu ^^

      • 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