http://www.perlmonks.org?node_id=297593

Not long ago I was lucky enough to hear TheDamian's Perligata talk. I suppose you could say it inspired me (one could also say that I have more time than sense) and I decided to try my hand at writing something simple. Those five years of Latin in school have to be good for something, right? Surely I could write one of the exercises from Learning Perl in Latin.

A couple of hours later I had this:

#!/usr/bin/perl -w use Lingua::Romana::Perligata; Enter tum radius inquementum tum biguttam tum lacunam egresso scribe. meo radiuso vestibulo perlegementum da. meo multipliero multiplicamentum II tum MMMCXLI Mimum da. meo circumferenceo multiplicamentum multiplierum tum radiusum da. scribe egresso dictum sic Circumference cis. biguttam tum lacunam tum circumferenceum tum novumversum egresso scribe.

Here's a closer look.

Enter tum radius inquementum tum biguttam tum lacunam egresso scribe.
Write to the exit (STDOUT) "Enter" then "radius" then a colon and then a space.

meo radiuso vestibulo perlegementum da.
Give to my $radius the data from the entrance (STDIN).

meo multipliero multiplicamentum II tum MMMCXLI Mimum da.
Give to my $multiplier the product of 2 and 3.141. (Yes, this is inelegant along with the next line - ideally I'd be doing all the multiplication in one go, but I kept running into glitches.)

meo circumferenceo multiplicamentum multiplierum tum radiusum da.
Give to my $circumference the product of $multiplier and $radius.

scribe egresso dictum sic Circumference cis. biguttam tum lacunam tum cirfumferenceum tum novumversum egresso scribe.
Write to the exit "Circumference" then write also a colon, a space, $circumference, and a newline. (Again, inelegant - I have two print statements to produce one line, but I was running into trouble with all the tums.)

If you use Lingua::Romana::Perligata 'converte' you can see what the translated-back-to-Perl is.

print (STDOUT Lingua::Romana::Perligata::__enquote__ ( 'Enter', 'radiu +s'), ":", " "); my $radius = IO::Handle::getline (*STDIN ); my $multiplier = (2 * 3.141); my $circumference = ($multiplier * $radius); print (STDOUT 'Circumference'); print (STDOUT ":", " ", $circumference, "\n")

This is really helpful when writing Perligata.

Did I learn something from this? You bet. Even though my Latin is extremely rusty, thinking about Perl in terms of a spoken (albeit dead) language gave me a new outlook. Plus it looks cool. I also found that the best way to approach writing in Perligata is not to take regular Perl and try to translate it one line at a time, but to actually think in Perligata. (Your milage may vary, of course.)

Replies are listed 'Best First'.
Re: Learning Perligata
by rinceWind (Monsignor) on Oct 08, 2003 at 16:36 UTC
    Did I learn something from this? You bet. Even though my Latin is extremely rusty, thinking about Perl in terms of a spoken (albeit dead) language gave me a new outlook. Plus it looks cool. I also found that the best way to approach writing in Perligata is not to take regular Perl and try to translate it one line at a time, but to actually think in Perligata. (Your milage may vary, of course.)
    Talking of dead languages, reading your Perligata program reminded me of COBOL. It has much in common, in particular the longwindedness with which one needs to spell matters out to achieve the simplest of tasks.

    I wonder if there's scope for a Latin to COBOL source filter :).

    --
    I'm Not Just Another Perl Hacker
Re: Learning Perligata
by bassplayer (Monsignor) on Oct 08, 2003 at 14:05 UTC
    De gustibus non est disputandem. :)

    bassplayer

Re: Learning Perligata
by Anonymous Monk on Dec 31, 2003 at 05:51 UTC
    ...thinking about Perl in terms of a spoken (albeit dead) language gave me a new outlook.

    Latin is not dead, it's immortal.