exec関数

exec関数はsystem関数とよく似ているが、system関数が子プロセスを起動するのに対し、exec関数は、Perlプロセス自体が要求した仕事を行なう。
system関数を使った場合、子プロセスが終了した後、Perlプロセスに戻って処理が続けられるが、exec関数を使った場合は、起動したプログラムが完了すると、Perlプログラム自身も終了する。

exec "ls";
die "ls couldn't run: $!";

lsコマンドが成功した場合は、dieは実行されない。また、exec関数の後ろにdie、exit、ブロックの終わり以外のコードがあると、警告が出る。


あまりexec関数には使い道がない気がする。実際、どちらを使うか迷った時は、sytem関数を使うと上手くいくらしい。