2014年2月11日火曜日

第19回「PerlでUNIXコマンドを実行する」

シェルコマンドを愛用しているので、Perlのソース見てもよくわかりません。。
さて、第19回のお題は「PerlでUNIXコマンドを実行する」です。

UNIXコマンドをPerlで加工できれば、使う機会が増えると思いました。

[test.pl]
#!/usr/bin/perl
my $ret;

$ret=`ls -1`;
print $ret;

[実行結果]
a.sh←printの結果
test.pl←printの結果

[test2.pl]
#!/usr/bin/perl
my $ret;

$ret=system "ls -1";
print $ret;

[実行結果]
a.sh←systemの結果
test.pl←systemの結果
0←printの結果

``(バッククォート)だと、標準出力されず結果を返り値に設定します。
system関数だと、標準出力されて実行プログラムのステータスコードを返り値に設定します。
``(バッククォート)またはsystem関数の後、$?を指定すると実行プログラムのステータスコードになります。
シェルスクリプトをPerlで実行するにはこんな感じです。
$ret=`./a.sh`;
$ret=system "./a.sh";

0 件のコメント: