エラー変数 $!
は、数値コンテキストで使用するとシステム変数 error
の値を返し、文字列コンテキストで使用すると perror()
関数(あるいは同様の関数)が返すエラー文字列を返します。
open FH, 'nonexistent';
my $code = 0 + $!;
print "Error code = $code\n";
print "Error msg = $!\n";
Error code = 2
Error msg = No such file or directory
0 + $val
のように、数値演算子を使用します。