perl 函数传递多个参数 数组 标量 字典,

 

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

 

你可能感兴趣的:(Linux,命令,perl,传参,perl多个参数,perl数组,函数传参)