They are different. You can run the following example. The part below the __DATA__ shows the expected output: $VAR1 is $_, $VAR2 is @_ (the \ in the Dumper statement is to have @_ formatted as array rather than individual scalars).
Before you go hunting for that odd Perl version: it specifies the minimum version. If your Perl is even older, you can change use 5.011 to use strict and say by print.
#!/usr/bin/env perl
use 5.011; # implies strict + feature 'say'
use warnings;
use Data::Dumper;
for (1 .. 2) {
say "in loop:";
say Dumper $_;
test(3, 4);
}
sub test {
say "in sub:";
# $VAR1 $VAR2
say Dumper $_, \@_;
}
__DATA__
in loop:
$VAR1 = 1;
in sub:
$VAR1 = 1;
$VAR2 = [
3,
4
];
in loop:
$VAR1 = 2;
in sub:
$VAR1 = 2;
$VAR2 = [
3,
4
];
];
|