perl裏,子例程採用可變長參數列表,因此參數的個數不再限制,體現出動態語言的優點。由於傳遞的是引用,所以可以在sub裏改變它的值。
samle01.pl
#!/usr/bin/perl
sub sub_routine{
$_[0] = "hello"; $_[1] = 999;
print "sub_par1:$_[0]/n";
print "sub_par2:$_[1]/n";
}
my $par1 = "abcde";
my $par2 = 2;
print "main_par1:$par1/n";
print "main_par2:$par2/n";
&sub_routine($par1, $par2);
print "main_par1:$par1/n";
print "main_par2:$par2/n";
運行結果:
main_par1:abcde
main_par2:2
sub_par1:hello
sub_par2:999
main_par1:hello
main_par2:999
如果不想在子例程裏改變參數的值,可以採用生命局部變量的方法。
sample02.pl
#!/usr/bin/perl
sub sub_routine{
my $par1 = $_[0];
my $par2 = $_[1];
$par1 .= "fghijklmn";
$par2 += 10000;
print "sub_par1:$par1/n";
print "sub_par2:$par2/n";
}
my $par1 = "abcde";
my $par2 = 2;
print "main_par1:$par1/n";
print "main_par2:$par2/n";
&sub_routine($par1, $par2);
print "main_par1:$par1/n";
print "main_par2:$par2/n";
運行結果:
main_par1:abcde
main_par2:2
sub_par1:abcdefghijklmn
sub_par2:10002
main_par1:abcde
main_par2:2
perl子例程參數傳遞方式初探
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章
perl裏字符串長度的取法
perl好像沒有提供strlen函數,用rindex函數可以同樣得到字符串的長度。 $str = "abcd 1234"; $len = rindex
lbl20020123
2020-06-29 18:11:45
perl子例程參數傳遞方式之二:數組作參數
lbl20020123
2020-02-25 23:01:59