in reply to Re: subroutine function
in thread subroutine function
my $left=$_[0]; my $right=$_[1];which is the same as
my $left = shift @_; my $right = shift @_;
It is not the same at all. The first version doesn't modify @_. The second one does modify it. The difference is often very important. (For example, if you're planning on using goto.)
use Test::More; use Data::Dumper; sub func1 { my $left=$_[0]; my $right=$_[1]; goto \&Data::Dumper::Dumper; } sub func2 { my $left = shift @_; my $right = shift @_; goto \&Data::Dumper::Dumper; } my @args = qw( a b ); # Are they the same?? is( func1(@args), func2(@args), "they're the same!", ); done_testing();
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re^3: subroutine function
by runrig (Abbot) on Oct 11, 2012 at 20:43 UTC |