http://www.perlmonks.org?node_id=1026641


in reply to Re^6: Wrong idioms (open $fh, '<', undef)
in thread Wrong idioms

perl -e " open $dirname, q/../ or die $!, $/, $^E, $/ "

You must be running Windows? or? Cygwin?

Under linux:

perl -e " open $dirname, q/../ or die $!, $/, $^E, $/ " bash: !,: event not found
perl -e ' open $dirname, q/../ or die $!, $/, $^E, $/ ' (no error)

for wantarray:

use strict; use warnings; sub array_func { my ($arg) = @_; if (wantarray) { return map { $arg } 1..3; } else { return map { $arg*2 } 1..5; } } sub uni_func { my ($arg) = @_; return wantarray ? array_func($arg) : scalar array_func($arg); } sub small_func { my ($arg) = @_; return array_func($arg) ; } print join(';', uni_func(7)); print "\n"; print scalar(uni_func(7)); print "\n"; print join(';', small_func(7)); print "\n"; print scalar(small_func(7)); print "\n"; print join(';', array_func(7)); print "\n"; print scalar array_func(7); print "\n"; __END__ prints: 7;7;7 5 7;7;7 5 7;7;7 5
what's the point in using 'wantarray' in uni_func here?