##
sub foo {
open F, ... or
return( [ -1, "error opening file" ] );
return( [ 0, $result ] );
}
my( $code, $string ) = foo();
####
sub foo {
open F, ...
or die [ -1, "error opening file" ];
return $result;
}
my $string;
eval {
$string = foo();
};
if ( $@ ) {
( my $code, $string ) = $@;
...
}