summaryrefslogtreecommitdiff
path: root/vms/ext/Stdio/Stdio.pm
diff options
context:
space:
mode:
Diffstat (limited to 'vms/ext/Stdio/Stdio.pm')
-rw-r--r--vms/ext/Stdio/Stdio.pm6
1 files changed, 4 insertions, 2 deletions
diff --git a/vms/ext/Stdio/Stdio.pm b/vms/ext/Stdio/Stdio.pm
index 275081329c..af71f0bb9e 100644
--- a/vms/ext/Stdio/Stdio.pm
+++ b/vms/ext/Stdio/Stdio.pm
@@ -32,13 +32,15 @@ sub AUTOLOAD {
if ($constname =~ /^O_/) {
my($val) = constant($constname);
defined $val or croak("Unknown VMS::Stdio constant $constname");
- *$AUTOLOAD = sub { $val };
}
else { # We don't know about it; hand off to IO::File
require IO::File;
my($obj) = shift(@_);
- $obj->IO::File::$constname(@_);
+
+ my($val) = eval "\$obj->IO::File::$constname(@_)";
+ croak "Error autoloading $constname: $@" if $@;
}
+ *$AUTOLOAD = sub { $val };
goto &$AUTOLOAD;
}