Perl-函数与面向对象


一、函数

函数也就是子程序,一般语言中函数三个特点,调用,传参以及返回。

1.1 关于调用

perl中函数可以分为用户函数与系统函数,sub关键字用于定义Perl程序中的用户函数

以下例子:

sub my_print {
  print("hello, world!\n");
}
# 函数调用,在perl5.0以下的版本需要加上&,函数没有传参时,可以不打括号,以下三种类型都是表示调用,
&my_print;
my_print; 
my_print();

1.1 关于传参

perl函数传参,跟其他语言有点不一样,使用特殊数组@_存储所有传入的参数,第一个参数是 $_[0],第二个参数是$_[1],以此类推。

以下例子:

#!/usr/bin/perl -w

# defining Average
sub Average {
   # 获取所有传入的参数, @_ 代表传入的数组
   $n = scalar(@_);
   $sum = 0;   
   foreach $item (@_) {
       $sum += $item;
   }
   $average = $sum / $n;
   # 打印整个数组, 10, 11, 12
   print("传入的参数为: ", "@_\n");     
   # 打印第一个参数, 10      
   print("第一个参数值为: ", "$_[0]\n");  
   # 打印第二个参数, 11      
   print("第二个参数值为: ", "$_[1]\n");    
   # 打印倒数第一个参数, 12    
   print("第二个参数值为: ", "$_[-1]\n"); 
   # 打印平均值,11    
   print("传入参数的平均值为:", "$average\n");  
}
# calling Average
Average(10, 20, 30);

注意:当传入的参数是数组时,perl会取出数组中元素存到@_特殊数组中。当传入参数时哈希时,perl会将它哈希中键值对复制到 @_ 中,哈希表将被展开为键/值组合的列表,以下例子:

#!/usr/bin/perl
 
# defining PrintList
sub PrintList{
   my @list = @_;
   print "\@list: ", "@list\n";
}
@b = (1, 2, 3, 4);
# calling PrintList
PrintList(@b);
 
# defining PrintHash
# 哈希表被当做键值对依次展开存储到@_中,按照平铺的写法,仍然可以认为这个是哈希表
sub PrintHash{
   # 将@_当做哈希表处理
   my %hash = @_; 
   foreach my $key (keys(%hash)) {
      my $value = $hash{$key};
      print "$key : $value\n";
   }
}
%hash = ('name' => 'runoob', 'age' => 3);
 
# calling PrintHash, name: rob age: 3
PrintHash(%hash);

1.2 关于返回

使用return做标志返回比较好,以下举例:

#!/usr/bin/perl
 
# defining add_a_b
sub add_a_b{
   return $_[0]+$_[1];  
   # 也可以不要return做返回标志,默认最后一行可以做返回
   # $_[0]+$_[1];  
}
# calling add_a_b, 使用$re接收返回值
$re = add_a_b(1, 2);
print("\$re: ", "$re\n");

2、系统函数

2.1 system函数

2.2 fork函数

2.3 pipe函数

2.4 exce函数

2.5 syscall函数

2.6 die函数

2.7 warn函数

2.8 exit函数

2.9 kill函数

2.10 sleep函数

2.11 wait函数

2.12 waitpid函数

2.13 caller函数

2.14 chroot函数

2.15 local函数


面向对象

占坑

总结

参考博客:Perl自学(10)——函数
参考博客:汇总 perl 常用系统函数

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值