系列文章目录
Perl脚本所有内容:
第一部分:前期准备
第二部分:了解第一个程序
命令行参数
大部分有意义的程序都需要先与外部交换程序。取得输入,再经过一番运算以后,反馈相应的输出。程序与外界最常见的皆苦就是命令行参数。看示例:
首先命令行就是在terminal中输入类似’./arg.pl -a aaaa -b bbbb’的命令。linux中我们熟知的如’ls ./‘也是命令行。
‘./arg.pl’和’ls’称为程序或命令,’./arg.pl’指的就是程序,‘ls’就是一种命令。
‘-a’,’-b’称为命令行选项,’-a’后面紧跟着的是命令行参数值,即’aaaa’。
当然命令行选项和参数值是非必须项,如’cp file_a file_b’中就没有命令行选项,如’ls -a’中就没有参数值。
程序分析
arg.pl程序代码如下:
#!/usr/bin/perl
print "command is :$0 \n";
for my $arg (@ARGV) {
print $arg,"\n";
}
exit0
第3行,print是一个函数,它把后面的内容输出到terminal中。$0是Perl中内建的一个变量,它的值是程序本身。
我们对比一下程序执行的两种方法产生的不同结果:
第一种方式:$0输出的是arg.pl;第二种方式:$0输出的是./arg.pl。
所以$0输出的是命令行中指明程序(arg.pl或./arg.pl)的参数。
第5-7行,是一个for循环结构,花括号代表循环结构里面的内容。每次循环依次把@ARGV的某个值赋值给$arg变量,然后print函数输出$arg变量的值。@是数组的标志,ARGV是Perl内建的一个数组,它包含命令行中的全部输入参数,包括选项和参数值,不包括$0。
在for循环中my声明了一个局部变量arg,该变量只在for循环作用域中生效。
第9行,exit0表示程序的结尾。一般以0表示整个程序的正常结束,其他值表示异常结束。exit的后面的数字是返回值,返回值对程序本身意义不大,主要用于调用该程序的其他程序,用于判断调用该程序时的执行情况。
细节点:
- Perl语句是以分号做为结束标志的
- print函数后面的逗号表示拼接,逗号左右的变量连接起来输出
- 注释以’#'开始