#1 调用外部命令 调用命令的perl程序为该命令的父进程,继承当前perl的标准输入标准输出
3system ‘ls -al $HOME’; #不使用变量内插
system “ls -al \$HOME”; #\$代表 $ 一个字符
system “ls -al $HOME”; #$HOME代表perl程序中的标量$HOME;
#system退出状态为0代表正常;
2unless (system ‘ls -al’) {print “cannot run shell\n”;}
!system ‘ls -al’ or die “cannnot run shell\n”;
#exec 操作符也能执行外部命令,但是会结束当前perl
#2查找环境变量
环境变量存储在%ENV的哈希变量中 例子:
2my $path=$ENV{‘PATH’};
print $path;
#3使用文件句柄执行外部进程
2open DATE ,‘-|’,‘date’ or die “cannot pipe from date:$!”;
open MAIL, ‘|-’,‘mailmerlyn’ or die “cannot pipe to mail:$!”;
| 在右边时表示该命令的输出连接到文件句柄DATE中,在左边表示命令的输入从文件句柄MAIL中读取
使用close关闭文件句柄时PERL会等待该进程结束然后取得结束状态,结束状态存于$?变量中,零表示成功,非零表示失败;使用system和反引号结束状态也会被存于$?变量中。
如果PERL在读取文件句柄时,外部命令没有数据输出,那么PERL就会停止运行等待数据输出为止。
审核编辑:黄飞
全部0条评论
快来发表一下你的评论吧 !