#!/usr/bin/perl -w # Fake scottish (dwarven) accent filter, by Adam Borowski, inspired by the # character "Durkon" from Order of the Stick by Rich Burlew. GPL, 2007. use strict; my @repl=qw( ^yes$:aye there:thar eir$:ar about:aboot ^he$:'e them:'em ^him:'im out_of$:outta of_course:'course ^of$:o' ^and$:an' to$:ta tog:tag that:tha the:tha wouldn't:wouldn'ta cannot:cannae can't:cannae don't:dinnae 're$:r for$:fer ver$:'er ber$:b'r every$:ev'ry en$:'n ^if$:if'n enl:'nl eng:'ng ing:in' ment:mn't ^es:'s ^ex:'s ^not$:na ^no$:nay n't_have:n'tve ^is$:be ^are$:be have:haf abl:'bl ^you$:ye ^your:yer ^you':ye' noth:nuth ^this$:'tis ^here:'ere doesn't:don't at_a$:atta ith$:it' ered$:'red into$:inta ^before:'fore wit'_':wit_' wit'_t:wit_t wit'_w:wit_w wit'_y:wit_y get_a:git_a ally$:'lly ^my:me ^i_think$:methinks nay_w:na_w ^one$:'un ^'un_a:one_a at_ta$:atta ot_ta$:otta ^isn't$:ain't ^so_th:s'th ned$:n'd ^because:'cause ), my @r; sub firstu($) { $_[0]=~s/^([^a-z]*)([a-z])/$1\u$2/; return $_[0]; } for(@repl) { s/_/ /g; my ($l,$r)=split(/:/,$_); for([$l,$r], [firstu $l, firstu $r], ["\U$l","\U$r"]) { ($l,$r)=@$_; $l=~s/^\^/\\b/; $l=~s/\$$/\\b/; push @r, [qr/$l/, $r]; } } while(my $txt=<>) { $txt=~s/$$_[0]/$$_[1]/g for @r; print $txt; }