1.09.2012

Perl: How to verify 'system()' function on Windows

Perl: Windows環境における system() 組み込み関数のエラー検証について

Perl ベストプラクティス本では、システムエラーの検証について以下のようにするのではなく

system $cmd
    and croak "Couldn't run: $cmd ($OS_ERROR)";

このようにすべしとある。

use POSIX qw( WIFEXITED );

WIFEXITED(system $cmd)
    and croak "Couldn't run: $cmd ($OS_ERROR)";

しかし、後者のコードを Windows 環境で実行するとこのようなエラーが通知される。

POSIX::WIFEXITED not implemented on this architecture at ...

まだPOSIXモジュールのソースを読み込んではいないが、結局前者の方法を取るしかないのか……

尚、Perl 6 では戻りのブール値が逆になり、ステータスコードが 0 の場合に true が返ってくるそうだ。

0 件のコメント:

コメントを投稿