use Fatal(2)

システムコールの戻り値はチェックしなきゃならんのだけど、面倒だからFatalを使う。

use Fatal qw/open close/;

use Fatalを使うと、失敗したときにundefが返る代わりにdieするようになるので、全体をevalで括ってしまえば個々のチェックが不要になるので便利です。

でもこれはPerl::Critic 1.051の-severity=1では通らないので、今のところ使っていません。

use Fatal qw(open close);

open my $fh, q{<}, undef;
close $fh;
% perlcritic -1 -verbose 9 fatal.pl
[InputOutput::RequireCheckedOpen] Return value of "open" ignored at line 11, near 'open my $fh, q{<}, undef;'.  (Severity: 3)
[InputOutput::RequireCheckedClose] Return value of "close" ignored at line 12, near 'close $fh;'.  (Severity: 2)

Perl::Criticにこだわるのにはそれなりの理由があります。それについてはまた今度。