Beefy Boxes and Bandwidth Generously Provided by pair Networks
Keep It Simple, Stupid
 
PerlMonks  

Re: Pig Latin

by stinkingpig (Sexton)
on Jul 25, 2009 at 05:11 UTC ( #783131=note: print w/ replies, xml ) Need Help??


in reply to Pig Latin

It seems ungood that there's no CPAN module for Pig Latin, at least none that I could find... so I shamelessly munged Lingua::Bork and this thread.

package Lingua::PigLatin; use strict; use warnings; require Exporter; use vars qw(@ISA %EXPORT_TAGS @EXPORT_OK $VERSION); @ISA = qw(Exporter); %EXPORT_TAGS = ( 'all' => [ 'piglatin' ] ); @EXPORT_OK = ( @{ $EXPORT_TAGS{'all'} } ); $VERSION = '0.01'; sub new { my $class = shift; bless {}, ref($class)||$class; } sub piglatin { local $_ = shift; local $_ = shift if ref($_); s/\b(qu|[cgpstw]h # First syllable, including digraphs |[^\W0-9_aeiou]) # Unless it begins with a vowel or number ?([a-z]+)/ # Store the rest of the word in a variable $1?"$2$1ay" # move the first syllable and add -ay :"$2way" # unless it should get -way instead /iegx; return $_; } 1; __END__ =head1 NAME Lingua::PigLatin - Perl extension for Pig Latin =head1 SYNOPSIS use Lingua::PigLatin 'piglatin'; print piglatin("Put the candle back.") =head1 DESCRIPTION igpay atinlay. =head1 EXPORT None by default. Can export piglatin function for convenience. =head1 AUTHOR Jack Coates, E<lt>jack@monkeynoodle.orgE<gt> =head1 SEE ALSO http://www.perlmonks.org/?node_id=3586 =head1 KNOWN PROBLEMS Contractions. This man page is not in Pig Latin. =cut

I haven't uploaded it to CPAN yet, I think I'll mess around with it a little first. Maybe some tests...

"Nothing was broken, and it's been fixed." -- Jon Carroll


Comment on Re: Pig Latin
Download Code

Log In?
Username:
Password:

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://783131]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others about the Monastery: (4)
As of 2015-07-04 03:36 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    The top three priorities of my open tasks are (in descending order of likelihood to be worked on) ...









    Results (57 votes), past polls