perl语言入门总结-第4章-子程序
子程序定义和返回值
sub sum{
print "调用了子程序\n";
$a + $b; #后一行为返回值
}
$a=;
$b=;
$s =∑ #34 调用子程序
子程序中的参数,参数固定(下面例子只能2参数),程序第一个参数为$_[0],第二个为$[1],依次类推
sub max {
if($_[] > $_[] ){
$_[];
}else{
$_[];
}
}
$n = & max(,); #结果为15
子程序中私有变量
sub max {
my($m,$n) = @_;
}
限制参数长度
sub max{
if(@_ != ){
print "waring! &max arguments not match"
}
}
变长参数列表
sub max {
my($max_num) = shift @_; #数组中的第一个值
foreach (@_){
if($_ > $max_num){
$max_num = $_;
}
}
$max_num;
}
$maximum = &max(,,,,,);
print $maximum
关于my变量
my($num) = @_; #列表上下文
my $num = @_; #标题上下文
my(a,b) = @_;
最好使用 use strict;
use 5.012 #自动加载strict编译指令
return操作符
如果像在子函数,foreach提前结束可使用return操作符。
省略&与号
一般情况可省略, 如果像定义了与内置函数同名,如chomp,则不能省略,调用必需为&chomp;
非标题返回值
sub sum{
..;
}
持久性私有变量state , 如果在strict模式下,使用全局变量会报错。
use strict;
use feature qw(state); sub marine{
state $n = ;
$n += ;
print "$n\n";
} &marine; #
&marine; #
&marine; #
perl语言入门总结-第4章-子程序的更多相关文章
- Perl语言入门:第六章习题:处理用户所指定的名字并汇报相应的姓。
37 print "\n----------------------------------_exercise_6_1--------------------------\n"; ...
- perl语言入门总结-第5章-输入输出
读取标准输入 chomp($line = <STDIN>); #去掉后面的换行 while (defined($line = <STDIN>)) { print "I ...
- perl语言入门总结-第3章-列表与数组
1-列表list指的是标题的有序集合, 而数组(array)则是存储列表的变量. 更精确地说,列表指的是数据,而数组指的是变量. 访问数组中的元素 ] = "yabba"; ] = ...
- perl语言入门总结-第2章
$what ='steak'; print "fred ate $n ${what}s.\n"; 布尔值 如果是数字0为假, 如果是空字符串''为假, 如果即不是数字也不是字符串, ...
- Perl语言入门:第七章习题:输出文件中包含一个大写字母的所有行,不输出一行的内容全是大写的
文件内容: bash-2.03$ cat file_4_ex_ch7.txt anonymous attribute demolition grammar rules indices refernce ...
- Perl语言入门: 斜线不是元字符,所以在不作为分隔符时不需要加上反斜线。
Perl语言入门: 斜线不是元字符,所以在不作为分隔符时不需要加上反斜线.
- Perl语言入门(中文版)(第6版) 东南大学出版社
第一章简介 问题与答案 这本书适合你吗? 为何有这么多的脚注? 关于习题和解答? 习题前标的数字是什么意思? 如果我是Perl讲师? “Perl”这个词表示什么意思? Larry为什么要创造Perl? ...
- Perl语言入门14-17
---------第十四章 字符串与排序------------------- index查找子字符串 my $stuff = "howdy world!"; my $where ...
- Perl 语言入门1-5
第一章 简介 perl -v 文字处理,编写小型CGI脚本(Web服务器调用程序)的最佳语言 CPAN: Perl综合典藏网 shebang: #! /usr/bin/perl 或#! /usr/lo ...
随机推荐
- Kindeditor单独调用多图上传
html代码: <input type="button" id="J_selectImage" value="图片上传" />& ...
- iOS - The identity used to sign the executable is no longer valid
①.首先在xcode中的Build Settings中看有没有设置: ②.账号是不是多个人在用,个人开发者的账号只能绑定一台电脑,当另外一台电脑绑定了话,你的电脑就失效了.你确认下是不是这个原因造成的 ...
- python模块详解 logging
打印日志的五个级别: import logging logging.debug('test debug') logging.info('test info') logging.warning('tes ...
- 在IE中解决当前安全设置不允许下载该文件的方案
解决方案一: 1.0打开IE后,单击菜单栏中的“工具”菜单,在弹出的菜单中选择“Internet选项”命令: 2.0在弹出“Internet选项”的对话框中,打开“Internet选项”对话框: 3. ...
- 你真的会用ABAP, Java和JavaScript里的constructor么?
如果constructor里调用了一个成员方法,这个方法被子类override了,当初始化一个子类实例时,父类的构造函数被的调用,此时父类构造函数的上下文里调用的成员方法,是父类的实现还是子类的实现? ...
- web前端的10个顶级CSS UI开源框架
随着CSS3和HTML5的流行,我们的WEB页面不仅需要更人性化的设计理念,而且需要更酷的页面特效和用户体验.作为开发者,我们需要了解一些宝贵的CSS UI开源框架资源,它们可以帮助我们更快更好地实现 ...
- 【洛谷4717】【模板】快速沃尔什变换(FWT模板)
点此看题面 大致题意: 有两个长度为\(2^n\)的数组\(A,B\),且\(C_i=\sum_{j⊕k==i}A_jB_k\)分别求出当\(⊕\)为\(or,and,xor\)时的\(C\)数组. ...
- 网格中的BFS,逆向(POJ2049)
题目链接:http://poj.org/problem?id=2049 解题报告: 网格中的BFS,最主要的是边界问题. 1.这里在左右,上下两个方向上,分别判断墙,和门,细节是,向上有t个墙,for ...
- 2017.11.10 web中URL和URI的区别
URI:Uniform Resource Identifier,统一资源标识符: •URL:Uniform Resource Locator,统一资源定位符: •URN:Uniform Resourc ...
- 使用MongoDB 2.6 C++驱动中的连接池
.post p{text-indent: 2em;} MongoDB2.6的CXX驱动(mongo-cxx-driver-26compat),内置包含了数据库连接池,方便管理数据库连接,但是官方文档说 ...