perl 5 まとめウィキ

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

`cat hoge` とか書くのいやじゃない?


下記の二つのコードは同じことです。
#!/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.

0
Posted by awesome things! 2014年01月21日(火) 14:54:01 返信

AT8Qgc Very good article post.Really looking forward to read more. Want more.

0
Posted by check this out 2013年12月19日(木) 16:10:02 返信

laH3f2 <a href="http://rfmkpqdiyerv.com/">rfmkpqdiyerv</a>, [url=http://gxzpmuobmfkb.com/]gxzpmuobmfkb[/url], [link=http://aflqaetpyjcc.com/]aflqaetpyjcc[/link], http://gjwkfgpkuxse.com/

0
Posted by qiojxz 2013年11月15日(金) 03:56:00 返信

さらに安全にすることができるよ
systemx , capturex , runx のように'x'系をつけると、引数を書けないようにできる。
↑この記述は逆ではないですか?
正しくは「引数を必須にできる。」ではありませんか?

0
Posted by とおりすがり 2012年11月06日(火) 14:53:55 返信

コメントをかく


「http://」を含む投稿は禁止されています。

利用規約をご確認のうえご記入下さい

Wiki内検索

Menu

ここは自由に編集できるエリアです。

フリーエリア

どなたでも編集できます