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到底有那些强大的功能,那么这篇 ...
随机推荐
- MySQL实用工具汇总
本文收录了mysql相关的实用工具.工具包括:性能测试,状态分析,SQL路由,及运维开发相关的所有工具,并会持续更新. 1.工具套件集 - percona-toolkit - oak-toolkit ...
- MAC常用软件推荐
SQL建模 http://dbwrench.com/download/install/mac_install.shtml 参考https://github.com/helantao/macOS/blo ...
- JAVA消息服务JMS规范及原理详解
JAVA消息服务JMS规范及原理详解 一.简介 JMS即Java消息服务(Java Message Service)应用程序接口,是一个Java平台中关于面向消息中间件(MOM)的API,用于在两个应 ...
- WPF手动绑定事件
this.but1.AddHandler(Button.ClickEvent,new RoutedEventHandler(OkButton_Click));
- JDK自带JVM性能调优监控工具jps、jstack、jmap、jhat、jstat
原文地址:https://www.jianshu.com/p/db954cb968fb JVM性能调优监控工具jps.jstack.jmap.jhat.jstat位于JDK的bin目录,这些工具短小精 ...
- 【C语言】符号优先级
一. 问题的引出 今天看阿里的笔试题,看到一个非常有意思的题目,但是很容易出错. 题目:如下函数,在32bit系统foo(2^31-3)的值是: Int foo(int x) { return x&a ...
- Java日志框架(Commons-logging,SLF4j,Log4j,Logback)
简介 在系统开发中,日志是很重要的一个环节,日志写得好对于我们开发调试,线上问题追踪等都有很大的帮助.但记日志并不是简单的输出信息,需要考虑很多问题,比如日志输出的速度,日志输出对于系统内存,CPU的 ...
- CentOS 7 安装配置zabbix 3.2.8
运行环境:CentOS 7.2 LNMP(已提前安装好此环境) 1.首先导入zabbix安装源# rpm -ivh http://repo.zabbix.com/zabbix/3.2/rhel/7/x ...
- 为什么zookeeper会导致磁盘IO高【转】
由于早期的storm版本心跳信息严重依赖zookeeper,心跳风暴会导致zookeeper的事务日志频繁的写磁盘,带来的问题首当其冲的是磁盘IO会爆掉. 优化思路 将zookeeper事务的日志放入 ...
- Android ShareUserId 使用总结
今天讲一下Android里面经常看到却不太留意的知识点——ShareUserId,在Android里面每个app都有一个唯一的linux user ID,则这样权限就被设置成该应用程序的文件只对该用户 ...