こんにちは、nanto_vi です。この記事は Perl Advent Calendar の 22 日目です。 Perl の特徴のひとつに関数が多値を返せるというのがあります。Go 言語と同様に、処理の結果とエラーの値を同時に返すことができます。 sub do_something { ... return (undef, $error) if $something_wrong; return ($result, undef); } my ($result, $error) = do_something(); 上述の do_something 関数はリストを返し、その第 1 要素に処理結果を、第 2 要素にエラーの値を含んでいます。ところが、ここでうっかり、 my $result = do_something(); とリストを使わずに返り値を受け取ってしまうと、変数 $result にエラー