sub foo {
local $_=shift;
s/.../.../g;
}
####
sub foo {
my $str=shift;
$str=~s/.../.../g;
}
##
##
package Acme::Bleach;
$VERSION = '1.12';
my $tie = " \t" x 8;
sub whiten {
local $_ = unpack "b*", pop;
tr/01/ \t/;
s/(.{9})/$1\n/g;
$tie . $_;
}
sub brighten {
local $_ = pop;
s/^$tie|[^ \t]//g;
tr/ \t/01/;
pack "b*", $_;
}
sub dirty {
$_[0] =~ /\S/;
}
sub dress {
$_[0] =~ /^$tie/;
}
open 0 or print "Can't rebleach '$0'\n" and exit;
( my $shirt = join "", <0> ) =~ s/.*^\s*use\s+Acme::Bleach\s*;\n//sm;
local $SIG{__WARN__} = \&dirty;
do { eval brighten $shirt; exit }
unless dirty $shirt && not dress $shirt;
open 0, ">$0" or print "Cannot bleach '$0'\n" and exit;
print {0} "use Acme::Bleach;\n", whiten $shirt and exit;