system,run,``などを使用したコマンド系の結果の成功/失敗をわかりやすくしてくれるよ。
普通のsystem call
#!/usr/bin/perl use warnings; use strict; #use IPC::System::Simple qw/system/; system('catx ./ipc-system-simple.pl');
die されない。
Can't exec "catx": そのようなファイルやディレクトリはありません at ipc-system-simple.pl line 8.
使用した場合
#!/usr/bin/perl use warnings; use strict; use IPC::System::Simple qw/system/; system('catx ./ipc-system-simple.pl');
dieされてますね。
"catx ./ipc-system-simple.pl" failed to start: "そのようなファイルやディレクトリはありません" at ipc-system-simple.pl line 8 シェルが値を返しました 2
下記の二つのコードは同じことです。
#!/usr/bin/perl use warnings; use strict; use Data::Dumper; use IPC::System::Simple qw/capture/; my @line = `cat ./ipc-system-simple.pl`; my @line2 = capture('cat ./ipc-system-simple.pl');
systemx , capturex , runx のように'x'系をつけると、引数を書けないようにできる。
例えば、下のようなコードだと、上の方は成功するけど、下の方はdieされる。安全な実装がしやすくなりますね。
#!/usr/bin/perl use warnings; use strict; use Data::Dumper; use IPC::System::Simple qw/capturex/; my @line = capturex('cat','./ipc-system-simple.pl'); my @line2 = capturex('cat ./ipc-system-simple.pl');
タグ
このページへのコメント
NlushF I am so grateful for your article post.Really thank you! Awesome.
AT8Qgc Very good article post.Really looking forward to read more. Want more.
laH3f2 <a href="http://rfmkpqdiyerv.com/">rfmkpqdiyerv</a>, [url=http://gxzpmuobmfkb.com/]gxzpmuobmfkb[/url], [link=http://aflqaetpyjcc.com/]aflqaetpyjcc[/link], http://gjwkfgpkuxse.com/
さらに安全にすることができるよ
systemx , capturex , runx のように'x'系をつけると、引数を書けないようにできる。
↑この記述は逆ではないですか?
正しくは「引数を必須にできる。」ではありませんか?