Archive-Zip-SimpleZip
view release on metacpan - search on metacpan
view release on metacpan or search on metacpan
private/MakeUtil.pm view on Meta::CPAN
};
}
if ($downgrade || $do_downgrade) {
$our_sub = sub {
if ( /^(\s*)our\s+\(\s*([^)]+\s*)\)/ ) {
my $indent = $1;
my $vars = join ' ', split /\s*,\s*/, $2;
$_ = "${indent}use vars qw($vars);\n";
}
elsif ( /^(\s*)((use|no)\s+(bytes|utf8)\s*;.*)$/)
{
$_ = "$1# $2\n";
}
};
}
#elsif ($] >= 5.006000 || $upgrade) {
elsif ($upgrade) {
$our_sub = sub {
if ( /^(\s*)use\s+vars\s+qw\((.*?)\)/ ) {
my $indent = $1;
my $vars = join ', ', split ' ', $2;
$_ = "${indent}our ($vars);\n";
}
elsif ( /^(\s*)#\s*((use|no)\s+(bytes|utf8)\s*;.*)$/)
{
$_ = "$1$2\n";
}
};
}
if (! $our_sub && ! $warn_sub) {
warn "Up/Downgrade not needed.\n";
if ($upgrade || $downgrade)
{ exit 0 }
else
{ return }
}
foreach (@files) {
#if (-l $_ )
{ doUpDown($our_sub, $warn_sub, $_) }
#else
#{ doUpDownViaCopy($our_sub, $warn_sub, $_) }
}
warn "Up/Downgrade complete.\n" ;
exit 0 if $upgrade || $downgrade;
}
sub doUpDown
{
my $our_sub = shift;
my $warn_sub = shift;
return if -d $_[0];
local ($^I) = ($^O eq 'VMS') ? "_bak" : ".bak";
local (@ARGV) = shift;
while (<>)
{
print, last if /^__(END|DATA)__/ ;
&{ $our_sub }() if $our_sub ;
&{ $warn_sub }() if $warn_sub ;
print ;
}
return if eof ;
while (<>)
{ print }
}
sub doUpDownViaCopy
{
my $our_sub = shift;
my $warn_sub = shift;
my $file = shift ;
use File::Copy ;
return if -d $file ;
my $backup = $file . ($^O eq 'VMS') ? "_bak" : ".bak";
copy($file, $backup)
or die "Cannot copy $file to $backup: $!";
my @keep = ();
{
open F, "<$file"
or die "Cannot open $file: $!\n" ;
while (<F>)
{
if (/^__(END|DATA)__/)
{
push @keep, $_;
last ;
}
&{ $our_sub }() if $our_sub ;
&{ $warn_sub }() if $warn_sub ;
push @keep, $_;
}
if (! eof F)
{
while (<F>)
{ push @keep, $_ }
}
close F;
}
{
open F, ">$file"
or die "Cannot open $file: $!\n";
view all matches for this distributionview release on metacpan - search on metacpan
( run in 5.330 seconds using v1.00-cache-2.02-grep-82fe00e-cpan-f5108d614456 )