system

別のプログラムを実行する

構文

解説

system は引数に指定した外部コマンドを実行します。 コマンドに与える引数もそのままリストとして与えます。

system( 'cp', '-r', 'directory', 'directory.backup' );

system はコマンドを実行後、その終了ステータスを返します。

my $exit_status = system('ls');
print $exit_status, "\n";    # 0

通常、多くの UNIX コマンドであれば、成功すれば 0 を、失敗すれば 0 以外の値を返します。

system によってコマンドの実行が失敗に終わった場合、例外を発出するようにしたいなら、 autodie プラグマを使います。

use autodie qw(system);
system('dummy');    # 例外が発出される

ただし、use autodie qw(system) は、内部的には IPC::System::Simple を使います。事前に IPC::System::Simple をインストールしておく必要がありますので注意してください。

system によって実行されたコマンドの出力は、そのまま標準出力に出力されます。 system はコマンドの出力をキャプチャーする機能はありません。 もし出力をキャプチャーしたいなら、バッククォートによるコマンド実行を使ってください。

my $output = `ls`;