コマンド
|
コマンド他のプロセスの実行バックォートを使う方法これは,単純な方法で,実行したいコマンドをバッククォートで囲む方法です.標準出力の結果が戻り値になります.次のようにすると,「ls -a」で表示されるディレクトリー内のファイル名とサブディレクトリー名を取得し,表示させることができます. #!/usr/bin/perl
$ret = `ls -a`; # バッククォートで囲んで実行
@list = split(/\s+/, $ret);
foreach(@list){
print "$_\n";
}
system()を使う方法これは,子プロセスを生成します.perl の実行プロセスは,子プロセスが終了するまで待機します.戻り値は,その実行コマンドの戻り値になります.子プロセスの標準出力の結果を取り込むことはできません. #!/usr/bin/perl
$ret = system("ls -a"); # 戻り値は通常は 0
exec()を使う方法これは,perl の実行プロセスを,execでのコマンドのプロセスに置き換えます.したがって,perl のプロセスに戻ることはありません.execのコマンドの実行に失敗した場合のみ,perlのプロセスに戻ります. #!/usr/bin/perl
exec("ls -a");
printf "commad failure\n"; # 通常は実行されない
参考文献・WEBサイトなど |