在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
定义子程序 关键字sub 例如: sub func { $n+=1; } 同c++不同的地方:在子程序里定义的变量$n属于全局变量,并且对于变量的位置没有要求,但是c++偏向于将子程序放在主函数的前面声明和定义,但是perl没有限制。 调用子程序 使用关键字符& 例如 &func; #n的值这时为1 &func; #n的值这是为2 返回值 两种方式:缺省方式返回和关键字return 缺省方式:把子程序中最后一句表达式作为返回值 例如在func中n的值就是返回值 return方式 :用return关键字显式的标记返回值,立即返回,与c++相同 参数 传递参数:&func(1,10);#1和10就是这个子程序的实际参数 与c++的不同:定义时,没有形参列表。 子程序会自动将参数传入一个名为@_的数组,并且$_[0]表示第一个参数,依次类推 注意$_和$_[0]没有什么关系 值传递:?有没有类似引用形参这样的概念 例如: sub max { if($_[0]>$_[1]){ $_[0]; } else{ $_[1]; } } 调用:&max(2,3); 子程序的私有变量 关键字:my sub max{ my($m,$n);#mn为私有变量,生命周期只是存在于花括号内 } use strict 编译命令 这样perl会要求你一定要用my来声明每个新的变量 如果没有my的限制,则编译的时候会产生fetal error 持久性私有变量 关键字:state 变量的作用域始终确定在子程序中,并且可以保留变量的值,有点static的意思 |
请发表评论