perl 函数
函数参数
sub hello{
$len = @args = @_;
print "hello @args\n";
}
hello('ajanuw', 'alone'); # hello ajanuw alone
传递hash参数
sub hello{
my (%args) = @_;
foreach my $k (keys %args) {
my $v = $args{$k};
print "$k: $v\n";
}
}
%user = (name => 'ajanuw', age => 14);
hello(%user);
return
如果没有使用 return 语句,则子程序的最后一行语句将作为返回值
sub add{
return @_[0] + @_[1];
}
print add(1,2)."\n"; # 3
静态变量
这个在js只能用闭包实现
#!/usr/bin/perl
use feature 'state';
sub add{
my $num = @_[0];
state $i = 0;
$i += $num;
return $i;
}
add(1);
add(4);
print add()."\n"; # 5
析构返回值
sub add{
qw/ajanuw alone/
}
my ($a, $b) = add();
print "$a and $b\n"; # ajanuw and alone
递归
#!/usr/bin/perl
sub echo{
my $n = @_[0];
if($n eq 0){
return 'done.';
}
print "$n\n";
return echo($n-1);
}
echo(3);
回调
#!/usr/bin/perl
use autodie;
sub asd{
my ($n, $cb) = @_;
&$cb($n +1);
}
asd(123, sub {
print "@_\n";
})
闭包
sub asd{
my $n = shift @_;
return sub {
$n += shift @_;
print "$n\n";
}
}
$x = asd(1);
&$x(2);
&$x(3);
perl 函数的更多相关文章
- perl 函数参数传递与返回值(一)
perl 函数参数传递与返回值(一) http://www.cnblogs.com/tobecrazy/archive/2013/06/11/3131887.html
- 转 Perl函数返回值用法指导
http://developer.51cto.com/art/201007/213003.htm Perl函数返回值用法指导 Perl编程语言中Perl函数返回值用法你是否比较熟悉,这里向大家简单 ...
- perl 函数回调 引用$client->run(sub {$client->sync});
匿名函数引用: [root@wx03 wx]# perl a1.pl CODE(0x2077b30) test [root@wx03 wx]# cat a1.pl $ref= sub {return ...
- Perl函数:字符串相关函数
Perl字符串相关函数 字符串的内置函数有: chomp, chop, chr, crypt, fc, hex, index, lc, lcfirst, length, oct, ord, pack, ...
- perl 函数的参数列表
在perl中,定义一个函数的时候,不需要在圆括号内指定具体的参数,所有的参数都从@_ 这个列表中得到 代码示例: sub test { my ($a, $b) = @_; print qq{$a\t$ ...
- perl学习之:subs函数
在Perl中,sub关键字主要是为了定义一个子例程,那么subs又是什么呢? 首先subs是一个函数,用于预先声明子例程,函数的参数是预声明的函数名列表.那么这个函数存在的意义是什么?首先,通过该函数 ...
- perl 从文件里读出变量无法使用解决办法
最近在写一个perl函数,把test case 放到配置文件里,读出来然后使用system运行. 我的本意是: 配置文件conf ping -c $count $ip #在主程序中定义$ip和$cou ...
- perl基本语法--转载
http://www.cnblogs.com/zhtxwd/archive/2012/03/06/2381585.html 本文介绍从变量类型.操作运算符.控制叙述.子程序.I/O和档案处理. Reg ...
- Perl的基本语法<总结> (转载)
前言:这篇文章是花了我很多时间.费了我很多心血才完成的,虽然连我自己都觉得无法达到尽善尽美的境界,但希望能帮助大家入门,稍微了解到Perl 到底是个什么样的东西,Perl到底有那些强大的功能,那么这篇 ...
随机推荐
- 【Spark】为什么没有任务调度到新增的Worker之上???
参考资料: https://stackoverflow.com/questions/34818880/spark-why-tasks-assigned-only-to-one-worker?utm_m ...
- 递归删除服务器log文件
## 进入logs根文件夹 cd /home/admin/logs ## 删除所有的log文件 find . -name "*.log.*" | xargs rm -f
- CS模式,客户端页面加载
public MainForm() { //1.初始化视图 InitializeComponent(); //2.加载程序 this.Load += new System.EventHandler(t ...
- 微软BI SSIS 2012 辅助阅读博客
大家可以根据对应的视频课程名称查找相关的辅助阅读博客,有少量辅助阅读博客和视频课程讲解内容相同,大部分都是拓展总结部分.希望大家在学完每一个视频课程之后看看相关博客内容,这样可以在知识面和深度上继续得 ...
- Linux中使用Vim快速更换文档中Windows换行符为Linux平台
一.简述 平时我们把Windows编写好的sh文件放在linux上跑时,经常出现换行符的问题.快速切换的解决方法如下: 二.解决 vim test.sh :set ff? 如果出现fileforma= ...
- mysql insert锁机制
https://blog.csdn.net/zhanghongzheng3213/article/details/53436240
- eclipse default handler IHandler interface “the chosen operation is not enabled”
NOTE: These two methods: Tip: Subclass AbstractHandler rather than implementing IHandler. but you ca ...
- SkinTK编译使用
简介 MFC这个东西已经落伍了,不建议使用.我就是吃饱了撑着,还在折腾这个. 平时写点带界面的小程序一般都用Qt来做,简单好用,也很容易做的比较漂亮.我觉得唯一一个算不得多大缺点的缺点就是Qt体积太大 ...
- OpenCV 学习笔记 06 SIFT使用中出现版权问题error: (-213:The function/feature is not implemented)
1 错误原因 1.1 报错全部信息: cv2.error: OpenCV(4.0.1) D:\Build\OpenCV\opencv_contrib-4.0.1\modules\xfeatures2d ...
- C#-MVC开发微信应用(7)--在管理系统中同步微信用户分组信息
在前面几篇文章中,逐步从原有微信的API封装的基础上过渡到微信应用平台管理系统里面,逐步介绍管理系统中的微信数据的界面设计,以及相关的处理操作过程的逻辑和代码.希望从一个更高的层次介绍微信的开发. 在 ...