sub foo { open F, ... or die "-1\nerror opening file"; return $result; } my $string; eval { $string = foo(); }; if ( $@ ) { ( my $code, $string ) = split /\n/, $@; ... }