=head1 NAME

Acme::DonMartin - For programs that are easy to dictate over the telephone

=head1 VERSION

This document describes version 0.09 of Acme::DonMartin, released


    use Acme::DonMartin;
    print "Hello world\n";


Perl is a very difficult language to dictate over the phone. All
those pesky punctuation characters and gruesome glyphs make it very
laborious to speak out loud.

To compound the problem, most people can't even agree on what
something as basic as C<#> should be called. Some of the names for
it (although by no means exhaustive) include:

     pound, pound sign, number sign, flash, hash, sharp,
     grid, crosshatch, octothorpe, square, pig-pen, hex,
     tictactoe, scratchmark, crunch, thud, thump, splat.

(and if you say these last few out loud, I think you can begin to
see where this is going). And if you think that's bad, wait until
you hear some of the sillier symbols, like C<%>, C<&> and C<@>.

The first time you run a program under C<Acme::DonMartin>, nothing
happens, but your source code is magically transformed into Don
Martin cartoon sound effects. The code continues to work as before,
but now the above program looks something like this:

   #! /usr/local/bin/perl

   use Acme::DonMartin;
   gashlikt ahweeeeee dipada fliff gahak dapada zap thwizzik
   gahork tik gark dakdik gleet skroook skronk chomple dig
   klooonn sloople tik fling splork gleet cook chook wiz
   bombah boomer poong glong shuka spatz

The next time it is run, it will function as it did previously.

Now you can pick up the phone and dictate it to someone else
and they can type it in to a computer and run it with much
less chance of confusion or error.

This is also a security feature. It is expected that a government
official who has wire-tapped your line will be laughing too hard
to be able to recover the source code.



=over 4

=item C<zownt thlip spoosh>

Something weird happened.


=head1 BUGS

None known.

Please report any bugs or feature requests to
C<bug-acme-donmartin@rt.cpan.org>, or through the web interface at

=head1 SEE ALSO

etc. etc. and of course

=head1 AUTHOR

Copyright (C) 2005-2006, David Landgren, all rights reserved.

=head1 LICENSE

This library is free software; you can redistribute it and/or modify
it under the same terms as Perl itself.


package Acme::DonMartin;

use strict;
use vars qw/ $VERSION /;

$VERSION = 0.09;

use vars qw/ $thud $thuk $thump $thwa $thwak $thwat $thwip %thwip $thwit $thwock
$thwop %thwop @thwop/; $thwit=length$thwop[length($thwop[$thwat=$thwa=0])-length
($thwop[1])];$thwop=map{$thwat+=length}@thwop[do{$thwop+=length for@thwop[$thwit
..$thwit+length($thwop[6])];$thwop}..do{$thwop&=$thwa;$thwop+=length$_ for@thwop
$thwit=undef,"+<$0" or die q=zownt thlip spoosh\n=;$thwa=chr$thwa;while(<$thwit>
){$thump.=$_;last if/^\s*use +@{[__PACKAGE__]}/}$thwak=$thump;$thud=<$thwit>;use
Compress::Zlib;$thud=~s/\s+$//;push @{$thwop{$thwip{$_}=$thwop++%$thwat}},qq{$_}
while $_=shift @thwop;$thuk=do{$thwat=$thwip^4; @thwop=split / /, $thud;!@thwop?
length($thwak):do{exists$thwip{$_}&&++$thwat for@thwop;$thwat!=@thwop}};$thwop=!
){$thwock=$thwop{ord$_}[rand$thwip];if(length join($thwa,@thwop,$thwock)>$thwip{
q{thwak}}-$thwip{thwit}){$thwak.=join($thwa,@thwop).$/;@thwop=( );$thump=''}push
@thwop, $thwock} @thwop and do{seek $thwit, $thwop=$thwip-$thwip, $thwip=$thwop-
;}} else {$thwop=$thwip{qq{shpork}}-$thwip{q{shklink}};eval uncompress do{while(
<$thwit>){$thwock.=chr for map{$thwip{$_}}(/(s(?:h(?:k(?:l(?:i(?:z(?:z(?:ortch|i
?)|r(?:[pt]|k(?:le)?|gle)|(?:ydoi|m)p|i(?:ng|p)|n [gt])|u(?:r(?:k(?:le)?|gle)|k(
g)|i(?:(?:shkl[ou]r|kkadi)k|(?:gazi )? ng)|o(?:o(?:glooom|ma|sh)|rshle|yng|nk)|u
?|t)|a(?:(?:bada|ddap)p|p(?:ada)?|s ?k|ch|m)|o(?:[fp]|o(?:sh|f))|ee[np]?|ump)|a(
|la[km]|f)|sh(?:(?:in|oo)k|prit za)?|t(?:oo(?:n[gk]|f)|y)|z(?:a(?:sh|k)|ik|op)|(
m)|een)|o(?:[kpw]|i(?:n[gk]|t)|ffisss|ong)|h(?:oo[mno ]|lakffa|elop|wam)|u(?:ff(
e(?:om)?p)|l(?:a(?:tt(?:er|a)|n[gk]|ck|ka|p)|i(?:[cn]? k|p)|o(?:i?nk|mp)|unk)|r(
|mm)|e(?:c(?:ch|k)|ech)|l(?:aflatch|eddle)|(?:q[uw]ac|no)k|jugarum|inkle) /xg )}
join(q..=>map{chr$thwip{$_}}split chr$thwop,$thud).$thwock}}exit;BEGIN{@thwop=do
{do{qw{ phoom doot chunk broot durp klank ho glakkle glukkle kazik splatch  glup
clip chika pak ping  whap  rumboom  kookook  flink  dokka  pwam  pwompf  chaklak
shklizzitz phoon gazoont puffa blapple tzong plapf pucka  twok  oooh  ging  spla
sputz dikka rowm oookk dooba tffp  skrunch  zap  thaploof  fwapada  blorf  tromp
klumble wamp mimpah kloink klump foosht cloink screeeezt kloong spamp  zak  flik
dripple sklurk goyng krak shkwitz gadang thwak fwop pop oomp  ploip  thoip  gark
thud flip doom zeem kachugh wunkada flof fashunk chomple shlork breep skloshitty
thluck cha  broodoot  clonk  skaproing  greedle  tink  bravo  fursh  hak  splort
fashklork fwabadap fwump thhhut slurp  spwat  glap  aling  trump  king  chompity
stoopft shpliple tika tubba  thwat  splazoosh  groink  clatta  tikka  glangadang
muffle gurgle sknosh shika kloon gadoing zooo blit crunchle tok  foop  pat  vowm
glork cak har clang toomp splazatch sklik glit dak sob phwam kaboff dink yug bam
spa splazitch boong spitz yargh fut klunk blooma kik skrazatz ding ferrip  glank
pittween zooka barf sproingachonk hm spazoosh clank pffft spritsits  bluka  clap
sklitch splop thwa thop pween umph chukkunk yaaugh fizzitz chook toon kaplam shk
schlip thot ooom phooo sprat thwok  urp  shkloort  kapf  flaffliff  fop  tikatik
fagwoosh chakunk shtork splapidy dabwak thaff cheep ecch gahak grawk wam shuffle
breebeep zika paf dakkadak hoot pink schlap fwizz spitza skronk katoonk  blobble
gaplork skrotch breedeet frack googlooom thwip klop kipf spwappo zit aarh  toing
shossh kachunka doip chuh vrooon domp skruncha fapadda  thoipoing  clik  sknitch
slurk fwoof zowm tooong pittwoon rah snuffle skribble spashle slotch thwit  snap
floofity skrak shlook kashook caw plif wong yaggak skroik  kikatik  tagak  glook
kweek faba bleegh blort glukle klakkle fwee gloople  doodle  claka  blidit  voom
fween fomp chuga ugh pluf sha vown sklerch putt fitzrower gloochle  gahoff  kawk
pik fip tippity rrrrrr bur shazzatz patwang foosh fwak  hum  splip  shlik  kwoip
kachoo fleedle ploosh rip skwik thoom frugga zwit  gishklork  sprop  oonk  floof
doit fabadap tweee clunk dong  gack  pwadak  rrip  shooka  toowoo  beedoop  room
sklishk fling funkada glawk phlakffa wheeah zingo thwock aooga  shnorkle  katoof
dingalina click spwang stamp sworf spmamp kloonk puffle vroom nok gloing skricha
thomp fush sploit bang thork varroom bloof dipadda shaf  tip  shklizortch  zazik
splash galink poong quack gadoon  droot  tikkak  zweech  chaka  smek  krugazunch
fwoosh splat gashlikt shklurtz fazzat booma shklorbbadorp floot  groon  krunchle
sit kaheeee dapadda  shklurk  puff  kluk  blonk  zachitty  skwako  huffle  zlitz
gasmitch plork mamp fwizzach shash toowit gadiff brnngt  tzing  tweedle  gashook
shkalink breet glorp chaklik brap kling pflap blut pam  gloydoip  snikker  glont
glomp shploip snork sklork skapasch smack thunck kweee bak kerackk zoot skniffle
inkle blorp cheeomp gaflor honk shpishle bleeble klonk swipadda  oof  gashkutzga
glik rawgh shlorp kwapp glutch plam zidit thiz ooga kwop  furshglurk  gooma  fak
shtik gloodle clack skroook tik slice skreek gak kazop guwk glut  gukguk  shklik
ting skreech gorshle  sprizzitz  ulp  gluk  splesh  fwof  doonk  glurgle  hushle
gaskrooch sknikle gazap slobble gazownt dingalinga bweep glink wiz  poit  pwoing
gasmatch toof tzwang yahhah shklakle gadink fowm shklazitch gikkadik  growrrooom
glort sut splap splish zizzak klik  thloop  spwap  gashplutzga  yukkle  pittooie
poing spoosht chimp yaach whak plap  chop  skrakit  whirr  shuka  fwask  fwizzap
skweek ploobadoof funk bump fladip glong psssh kalloon fwit bloit dugga  kaloong
dimpah bash splortch glikity  flut  kashpritza  shklorp  gasp  hic  gamop  flork
stroinggoink din skwappo  shooo  crugazunch  glika  fliff  spatz  zikkik  dipada
splitch wink whoosh sloople zot shklop bahoo shloop sklop  zownt  thhlorp  dakka
zunch bzzt bring shmuzorft mabbit pittoo  thoof  shkaloink  thlip  boil  kladwak
spukkonk blam vreen garunk ferrap sprazot blink  sittzle  barramm  spoosh  plurp
swizzat huff boom thwizzik haah cook goosh kachunk zgluk  fwiskitty  znik  klink
schlit plortch shiffle ta tingalinga doop swit  skreee  pitooie  floom  gasplush
klak zwot jugarum thoo umble zik argh dabomp glurk thlup spush  sproing  glurkle
klong foom fwap foon kapoooshshish shashwik ying spritz sklukle blop faglork zat
klingdinggoon shlikle daba glorgle snat bing sklizzorch kreek  sproink  poffisss
skrich zizazik hush phelop ak glikle mmm zip spazat yarg splurp fap schklurt wak
skazeech krik map kwong ploof splak sploosh kridit shik prawk chirp rumble clomp
gloot fluk whisk fump flok wap skluk yip pwok beeyoop fagroon fwam ghomp  grunch
fwip gring spladunk zock skwonk  chikaklak  bap  shpikkle  uk  klupada  splapple
spamamp sploydoing spak gurn stoink kachonk fiff skwa gasploosh agh  froom  thap
chonk gleet spwako shtoink dapada dakdik laflatch  shplep  kazak  doobada  foomp
toonk wee thhhht klang tween flif  fwipada  thuk  thubalup  zweet  plop  brrrapp
skazooch fwach shompah plunk glitch  glargle  dakkitydak  fitz  zich  dubba  ogh
thugawunk deep splishidy floba spoof garrargh slapth krunch unklik kazash roomba
shif galoon oggock fwisk karrak thwop shwika schloop  blif  doomp  boomer  sslit
bombah varoom voofen kaplak fiddit kwonk dik vroon  foowoom  gloip  leddle  thak
gloop flak skreekle plipple plorf shwik skritch krash kash gashklitz poink smash
dang shlurp gishklurk splorp thoomp fwizzish glip  splashidy  kloobada  shkliksa
shnip bloooot whomp sound dig  arg  deebe  argle  spopple  zikka  oot  ga  shlak
kakroosh sklorsh spmap dit onnnnnghk bloop pow  plak  rowr  skrawk  thwuk  yeech
fidip shlipp bong skrink spash shklitza blamp ziz foing  smak  kadoonk  spladish
fagrooosh dap sklush plink  thlik  ooh  kak  gahork  pwof  bzownt  shklunk  foof
sproingdoink arargh stoong swif ripf shlurk thump schloot swish  gaplonk  swizap
kaboomm hee floon eech dootbweet  plaf  oont  fladat  yak  shook  plobble  sreek
shpooosh kahak sizzotz klikrunk tak thwap krikit faroolana chunka koong ka dooot
shklurch shak chip growr shklizzortch flibadip klinkadink twong borfft snip spap
skroinch shklink katy sprowmmm sizzle da splork  kuk  skrazitz  clatter  skronch
blib flabadap stoof gladink schlep fushshklork winkity ror gwap teeoo eck shloip
ploop aaak ahweeeeee dow  wonk  blatch  sazzikk  umpf  glunk  tood  shpork  tonk
fwaddapp koff ack spmam  glorkle  zween  sklazoncho  dooma  toong  crash  shooga
gazikka doink florf ploom garoof kittoong tzoong tong  gashklitzka  fliffle  tap
gleep spop weeoooo splorple ahh shklizich twop  gigazing  patweeee  huffa  qwack
splosh doont fsssh fizzazzit gadaff plonk katoong pok klooonn flifflaff yuk  don
sprizawitz krarkle flizaff  gonk  flaf  skroom  gadong  klomp  clink  padap  pap
shnikkle ba spaloosh fweep crunch blub sput brak  thikoosh  swizzak  kaka  bleep
grak kachaah hakkle blap takka galooom bloom ha swoosh sitz sssst  kashink  wunk
skaplunch frit skloosh thurch krakkle glish shabamp tear sklortch thoonoonn flit

                'This module is dedicated to Don Martin'