Perl子例程参数通过引用传递(签名中的参数除外)
示例
Perl中的子例程参数通过引用传递,除非它们在签名中。这意味着@_子内部数组的成员只是实际参数的别名。在下面的示例中,$text在子程序调用之后,对主程序进行了修改,因为$_[0]子内部实际上只是同一变量的不同名称。第二次调用将引发错误,因为字符串文字不是变量,因此无法修改。
use feature 'say';
sub edit {
$_[0] =~ s/world/sub/;
}
my $text = "Hello, world!";
edit($text);
say $text; # Hello, sub!
edit("Hello, world!"); # Error: Modification of a read-only value attempted为避免破坏调用方的变量,因此,如“创建子例程”中所述,将其复制@_到本地范围的变量(my...)很重要。
热门推荐
1 泰迪狗狗如何训练
3 狗狗训练图
5 狗狗训练方法
6 训练狗狗不咬人
8 敏捷训练狗狗
10 训练狗狗吃饭
11 泰迪狗狗训练
12 狗狗从多大开始训练
13 狗狗训练学校费用
14 怎么去训练狗狗
15 狗狗训练狗狗
16 狗狗训练教程
17 训练狗狗装死
18 泰迪狗狗的训练方法