X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=lib%2FAutoSplit.pm;h=bf0f9256c822b6a603abce87ee6068ea0708bffc;hb=0740f80f71de6af2dd0e3c3aecddec0fc42f34f0;hp=7fd9487bc9eba7f83d145dd53e4fc76a20781c0d;hpb=b6c146dd05d7f6ee2801592b9ba97b59966f4411;p=p5sagit%2Fp5-mst-13.2.git diff --git a/lib/AutoSplit.pm b/lib/AutoSplit.pm index 7fd9487..bf0f925 100644 --- a/lib/AutoSplit.pm +++ b/lib/AutoSplit.pm @@ -3,7 +3,6 @@ package AutoSplit; use 5.006_001; use Exporter (); use Config qw(%Config); -use Carp qw(carp); use File::Basename (); use File::Path qw(mkpath); use File::Spec::Functions qw(curdir catfile catdir); @@ -11,7 +10,7 @@ use strict; our($VERSION, @ISA, @EXPORT, @EXPORT_OK, $Verbose, $Keep, $Maxlen, $CheckForAutoloader, $CheckModTime); -$VERSION = "1.0307"; +$VERSION = "1.04_01"; @ISA = qw(Exporter); @EXPORT = qw(&autosplit &autosplit_lib_modules); @EXPORT_OK = qw($Verbose $Keep $Maxlen $CheckForAutoloader $CheckModTime); @@ -148,10 +147,12 @@ if (defined (&Dos::UseLFN)) { my $Is_VMS = ($^O eq 'VMS'); # allow checking for valid ': attrlist' attachments -my $nested; +# (we use 'our' rather than 'my' here, due to the rather complex and buggy +# behaviour of lexicals with qr// and (??{$lex}) ) +our $nested; $nested = qr{ \( (?: (?> [^()]+ ) | (??{ $nested }) )* \) }x; -my $one_attr = qr{ (?> (?! \d) \w+ (?:$nested)? ) (?:\s*\:\s*|\s+(?!\:)) }x; -my $attr_list = qr{ \s* : \s* (?: $one_attr )* }x; +our $one_attr = qr{ (?> (?! \d) \w+ (?:$nested)? ) (?:\s*\:\s*|\s+(?!\:)) }x; +our $attr_list = qr{ \s* : \s* (?: $one_attr )* }x; @@ -166,6 +167,10 @@ sub autosplit{ autosplit_file($file, $autodir, $keep, $ckal, $ckmt); } +sub carp{ + require Carp; + goto &Carp::carp; +} # This function is used during perl building/installation # ./miniperl -e 'use AutoSplit; autosplit_lib_modules(@ARGV)' ... @@ -403,14 +408,14 @@ EOT print " deleting $file\n" if ($Verbose>=2); my($deleted,$thistime); # catch all versions on VMS do { $deleted += ($thistime = unlink $file) } while ($thistime); - carp "Unable to delete $file: $!" unless $deleted; + carp ("Unable to delete $file: $!") unless $deleted; } closedir($outdir); } } open(my $ts,">$al_idx_file") or - carp "AutoSplit: unable to create timestamp file ($al_idx_file): $!"; + carp ("AutoSplit: unable to create timestamp file ($al_idx_file): $!"); print $ts "# Index created by AutoSplit for $filename\n"; print $ts "# (file acts as timestamp)\n"; $last_package = '';