#!/usr/bin/perl
sub t {
print \"in t\\n\";
print \"@_\\n\";
&s;
}
sub s {
print \"in s\\n\";
print \"@_\\n\";
}
t(1,2);
print \"out\\n\";
print \"@_\\n\
Calling a subroutine using the &NAME;
syntax makes current @_
visible to it. This is documented in perlsub:
If a subroutine is called using the
&
form, the argument list is optional, and if omitted, no@_
array is set up for the subroutine: the@_
array at the time of the call is visible to subroutine instead. This is an efficiency mechanism that new users may wish to avoid.
So, it's definitely a feature.