system()とコマンド入力演算子(逆クオート演算子)の出力
system()と``は似たようなものかと思っていたら、今日唐突にはまったのでメモ。
system()は出力をそのままにしてくれるけど、``は出力結果がreturnされる。
called.pl
#!/usr/local/bin/perl print "called!!\n";
caller.pl
#!/usr/local/bin/perl print "system().\n"; system("./called.pl") == 0 or die $!; print "\n----------------------\n\n"; print "``.\n"; my $ret = `./called.pl`; # 'stdout' return print $ret;
$ caller.pl system(). called!! ---------------------- ``. called!!
ちなみに全く使わないexec()はsystem()と同じだった。