perl語言傳遞參數
傳遞標量
當我們傳遞的參數,標量的時候,適用於 標量讀取參數
例子:
Average 函數傳入3個參數,
Average 接收後可用@_[0] 獲取位置參數
也可以直接遍歷@_,當有多個標量時傳遞過來是以數組形式接受。
#!/usr/bin/perl
# 定義求平均值函數
sub Average{
# 獲取所有傳入的參數
$n = scalar(@_);
$sum = 0;
foreach $item (@_){
$sum += $item;
}
$average = $sum / $n;
print '傳入的參數爲 : ',"@_\n"; # 打印整個數組
print "第一個參數值爲 : $_[0]\n"; # 打印第一個參數
print "傳入參數的平均值爲 : $average\n"; # 打印平均值
}
# 調用函數
Average(10, 20, 30);
#結果
傳入的參數爲 : 10 20 30
第一個參數值爲 : 10
傳入參數的平均值爲 : 20
傳遞數組
傳遞一個數組
例:
#!/usr/bin/perl
# 定義函數
sub PrintList{
my @list = @_;
print "列表爲 : @list\n";
}
@b = (1, 2, 3, 4);
# 列表參數
PrintList(@b);
#結果
列表爲 : 10 1 2 3 4
傳遞多個數組
這裏所利用的是引用的概念
引用就是指針,Perl 引用是一個標量類型可以指向變量、數組、哈希表(也叫關聯數組)甚至子程序,可以應用在程序的任何地方。
#!/usr/bin/perl
# 定義函數
sub PrintList{
my ($list1,$lsit2) = @_;
foreach $key ( @$list1 ){
print "$key \n";
}
print "列表爲 : @$list1\n";
print "列表爲 : @$list2\n";
print ""
}
@b = (1, 2, 3, 4);
@a = ("a","b","c","d")
# 列表參數
PrintList(\@b,\@a);
#結果
1
2
3
4
列表爲 : 1 2 3 4
列表爲 : a b c d
取值的時候你可能注意到了 他是倆個符號並列
數組 : @$
標量:$$
字典 :%$
常用的就這幾個,舉個混合的例子
#!/usr/bin/perl
# 定義函數
sub PrintList{
my ($list1,$lsit2,$list3) = @_;
foreach $key ( @$list1 ){
print "$key \n";
}
print "$$list2\n";
foreach my $key ( keys %$hash ){
my $value = $hash{$key};
print "$key : $value\n";
}
}
@b = (1, 2, 3, 4);
$c = "what a fuck!"
%a = ('name' => 'hello', 'age' => 3);
# 列表參數
PrintList(\@b,\$c,\%a);
#結果
1
2
3
4
what a fuck!
age : 3
name : hello