关于 perl 中命令执行以及@ARGV的使用
在 perl 中提供了很方便的命令行执行的工具。 `` (键盘上 Tab 建上边的键)可以用于执行 perl 命令行。
下面就以一个例子来说明具体的用法。
程序一( Demo.pl )
#!/usr/bin/perl
use strict ;
use warnings ;
if ( $ ARGV [ 0 ] eq "1" ){
`perl F://Demo2.pl` ;
} else {
`perl F://Demo3.pl` ;
}
程序二 (Demo2.pl)
#!/usr/bin/perl -w
use strict ;
use warnings ;
unless ( open ( FILE_F , ">>F://log2.log" )){
print "Can not open the file" ;
}
print FILE_F "Demo2" ;
close ( FILE_F );
程序三 (Demo3.pl)
#!/usr/bin/perl
use strict ;
use warnings ;
unless ( open ( FILE_F , ">>F://log3.log" )){
print "Can not open the file" ;
}
print FILE_F "Demo3" ;
close ( FILE_F );
程序解释
我们在命令行中执行使用 perl 命令( perl ${Demo.pl 所在的目录 }//Demo1.pl ,例如 perl F://Demo1.pl 1 )来执行程序一 ,然后如果后面的参数为 1 ,则执行 ` perl F://Demo2.pl ` , perl 就会执行 F 盘目录下的 Demo2.pl ,执行 Demo2.pl 后 Demo2.pl 就会在 F 盘目录下建立文件 log2.log ,并写入“ Demo2 ”;如果后面的参数不是 1 ,则执行 ` perl F://Demo3.pl ` , perl 就会执行 F 盘目录下的 Demo3.pl ,执行 Demo3.pl 后 Demo3.pl 就会在 F 盘目录下建立文件 log3.log ,并写入“ Demo3 ”。
同时,我们也看到了 @ARGV 的使用方法。
@ARGV 就是接受 perl 的命令行执行参数。