From: Wolfgang Laun Date: Wed, 5 Dec 2001 10:49:20 +0000 (+0100) Subject: Re: [PATCH] File::Basename pod and .t (was: perlpacktut.pod v0.0 (split)) X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=commitdiff_plain;h=3b421ef00fac94db72130d6dc774d9e49e8db4eb;p=p5sagit%2Fp5-mst-13.2.git Re: [PATCH] File::Basename pod and .t (was: perlpacktut.pod v0.0 (split)) Message-ID: <3C0DEDA0.C58A8A9E@alcatel.at> p4raw-id: //depot/perl@13472 --- diff --git a/lib/File/Basename.pm b/lib/File/Basename.pm index e25598c..035c597 100644 --- a/lib/File/Basename.pm +++ b/lib/File/Basename.pm @@ -17,9 +17,9 @@ dirname - extract just the directory from a path $basename = basename($fullname,@suffixlist); $dirname = dirname($fullname); - ($name,$path,$suffix) = fileparse("lib/File/Basename.pm","\.pm"); + ($name,$path,$suffix) = fileparse("lib/File/Basename.pm",qr{\.pm}); fileparse_set_fstype("VMS"); - $basename = basename("lib/File/Basename.pm",".pm"); + $basename = basename("lib/File/Basename.pm",qr{\.pm}); $dirname = dirname("lib/File/Basename.pm"); =head1 DESCRIPTION @@ -60,7 +60,8 @@ B contains everything up to and including the last directory separator in the input file specification. The remainder of the input file specification is then divided into B and B based on the optional patterns you specify in C<@suffixlist>. Each element of -this list is interpreted as a regular expression, and is matched +this list can be a qr-quoted pattern (or a string which is interpreted +as a regular expression), and is matched against the end of B. If this succeeds, the matching portion of B is removed and prepended to B. By proper use of C<@suffixlist>, you can remove file types or versions for examination. @@ -76,7 +77,7 @@ file as the input file specification. Using Unix file syntax: ($base,$path,$type) = fileparse('/virgil/aeneid/draft.book7', - '\.book\d+'); + qr{\.book\d+}); would yield @@ -87,7 +88,7 @@ would yield Similarly, using VMS syntax: ($name,$dir,$type) = fileparse('Doc_Root:[Help]Rhetoric.Rnh', - '\..*'); + qr{\..*}); would yield diff --git a/lib/File/Basename.t b/lib/File/Basename.t index 9bee1bf..32d9bfb 100755 --- a/lib/File/Basename.t +++ b/lib/File/Basename.t @@ -18,7 +18,7 @@ print +(length(File::Basename::fileparse_set_fstype('unix')) ? '' : 'not '),"ok 2\n"; # Unix syntax tests -($base,$path,$type) = fileparse('/virgil/aeneid/draft.book7','\.book\d+'); +($base,$path,$type) = fileparse('/virgil/aeneid/draft.book7',qr'\.book\d+'); if ($base eq 'draft' and $path eq '/virgil/aeneid/' and $type eq '.book7') { print "ok 3\n"; } @@ -37,7 +37,7 @@ print +(File::Basename::fileparse_set_fstype('VMS') eq 'unix' ? '' : 'not '),"ok 8\n"; # VMS syntax tests -($base,$path,$type) = fileparse('virgil:[aeneid]draft.book7','\.book\d+'); +($base,$path,$type) = fileparse('virgil:[aeneid]draft.book7',qr{\.book\d+}); if ($base eq 'draft' and $path eq 'virgil:[aeneid]' and $type eq '.book7') { print "ok 9\n"; }