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
];
];