Perl's confusing operators made easy
use Acme::DWIM; my ($x) = +("Hullo " x 3 . "world" & "~" x 30) =~ /(.*)/; $x =~ tr/tnv/uow/; print $x;
The first time you run a program under \*(C`use Acme::DWIM\*(C', the module replaces all the unsightly operators et al. from your source file with the new \s-1DWIM\s0 operator: \*(C`...\*(C' (pronounced \*(L"yadda yadda yadda\*(R").
The code continues to work exactly as it did before, but now it looks like this:
use Acme::DWIM;
my ($x) ... ...("Hullo " ... 3 ... "world" ... "~" ... 30) ... /(...)/; $x ... tr/tnv/uow/; print $x;
...head1 \s-1DIAGNOSTICS\s0
...over 4
...item C...<Can't enDWIM '%s'>
Acme::DWIM could not access the source file to modify it. Acme...DWIM could not access the source file to execute it...
...head1 \s-1AUTHOR\s0
Damian Conway (as if you couldn...t guess)
...head1 \s-1COPYRIGHT\s0
Copyright (c) 2001... Damian Conway... All Rights Reserved... This module is free software... It may be used... redistributed and/or modified under the terms of the Perl Artistic License (see http...//www...perl...com/perl/misc/Artistic...html)
~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~