diff options
Diffstat (limited to 'vms')
-rw-r--r-- | vms/ext/Filespec.pm | 16 |
1 files changed, 12 insertions, 4 deletions
diff --git a/vms/ext/Filespec.pm b/vms/ext/Filespec.pm index 3ce67aafda..db3283c571 100644 --- a/vms/ext/Filespec.pm +++ b/vms/ext/Filespec.pm @@ -12,6 +12,7 @@ VMS::Filespec - convert between VMS and Unix file specification syntax =head1 SYNOPSIS use VMS::Filespec; +$fullspec = rmsexpand('[.VMS]file.specification'); $vmsspec = vmsify('/my/Unix/file/specification'); $unixspec = unixify('my:[VMS]file.specification'); $path = pathify('my:[VMS.or.Unix.directory]specification.dir'); @@ -61,6 +62,14 @@ subroutine call, which bypasses prototype checking). The routines provided are: +=head2 rmsexpand + +Uses the RMS $PARSE and $SEARCH services to expand the input +specification to its fully qualified form. (If the file does +not exist, the input specification is expanded as much as +possible.) If an error occurs, returns C<undef> and sets C<$!> +and C<$^E>. + =head2 vmsify Converts a file specification to VMS syntax. @@ -124,10 +133,9 @@ require 5.002; require Exporter; @ISA = qw( Exporter ); -@EXPORT = qw( &vmsify &unixify &pathify &fileify - &vmspath &unixpath &candelete); +@EXPORT = qw( &vmsify &unixify &pathify &fileify + &vmspath &unixpath &candelete &rmsexpand ); -@EXPORT_OK = qw( &rmsexpand ); 1; @@ -142,7 +150,7 @@ __END__ # should be adequate for most purposes. # A sort-of sys$parse() replacement -sub rmsexpand { +sub rmsexpand ($;$) { my($fspec,$defaults) = @_; if (!$fspec) { return undef } my($node,$dev,$dir,$name,$type,$ver,$dnode,$ddev,$ddir,$dname,$dtype,$dver); |