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; #### sub brighten { local $_ = pop; s/^$tie|[^ \t]//g; tr/ \t/01/; pack "b*", $_ } #### open 0, ">$0" or print "Cannot bleach '$0'\n" and exit; #### print {0} "use Acme::Bleach;\n", whiten $shirt and exit; #### sub whiten { local $_ = unpack "b*", pop; tr/01/ \t/; s/(.{9})/$1\n/g; $tie.$_ }