#!/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";
Run Code Online (Sandbox Code Playgroud)
输出:
in t
1 2
in s
1 2
out
Run Code Online (Sandbox Code Playgroud)
如您所见,在没有传递参数时&s
输出1 2
.这是一个功能还是一个bug?
测试版本为5.8.8.
TLP*_*TLP 18
在&
子名称之前使用并且没有传递参数列表时,当前@_
将作为参数传递.所以,这是一个功能.
以下是调用子例程的不同方法:
NAME(LIST); # & is optional with parentheses.
NAME LIST; # Parentheses optional if predeclared/imported.
&NAME(LIST); # Circumvent prototypes.
&NAME; # Makes current @_ visible to called subroutine.
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
1792 次 |
最近记录: |