Perlivé slohy

Niekoľko rokov sa živím programovaním v jazyku Perl. Tento jazyk som si obľúbil, pretože je veľmi pružný a efektívny. Pre začiatočníkov je pomerne zložitý, ale keď sa človek prehryzie cez základy, objaví jeho krásu.

A tak som raz v jeden dlhý chladný večer vyprodukoval nasledujúce básničky v jazyku Perl:

Died at midnight - Smrť o polnoci

Toto je moja prvá básnička v jazyku Perl. Dosť pesimistická, chladná, deprimujúca ...

midnight.pl

#!/usr/bin/perl

die unless exists $join{t} ;
import grass ;
join 'party' or kill $yourself ;

#
# midnight.pl - Died at midnight.pl
#
# Copyright (c) 2006 Lubomir Host 'rajo' <rajo AT platon.sk>
# All rights reserved.
#
# $Author: rajo $
# $Date: 2006-02-04 00:39:07 +0100 (Sat, 04 Feb 2006) $
# $Revision: 3196 $
#

Výstup po spustení:

Died at midnight.pl line 3.

HOWTO open your mind - Ako otvoriť svoju myseľ

Chvíľku po vzniku prvej básničky vznikla aj druhá. Menej pesimistická a s celkom zaujímavou funkčnosťou pri spustení. Ak sa básnička uloží do súboru s názvom *howto::open-your-mind.pl (pozor na hviezdičku na začiatku), program vypíše sám seba (otvorí súbor - svoju myseľ).

Takže takto vyzbrojený návodom (howto), pekne zabaleným do balíčka (package) sa už nemusíte Perlu ani skúmania svojej mysle báť. ;-)

*howto::open-your-mind.pl

#!/usr/bin/perl

package howto;

*mind = $0;
open your, *mind;

print map <your>, $mind;

#
# *howto::open-your-mind.pl - HOWTO open your mind
#
# Copyright (c) 2006 Lubomir Host 'rajo' <rajo AT platon.sk>
# All rights reserved.
#
# $Author: rajo $
# $Date: 2006-02-04 00:33:59 +0100 (Sat, 04 Feb 2006) $
# $Revision: 3195 $
#

Who is Perl guru? -- Kto je Perlový guru?

Môj prvý obfuscovaný Perlový kód.

who-is-perl-guru.pl

#!/usr/bin/perl

$x=sub{$s=0;map{$s+=$_}@_;$s%17};@_[1]=11;@==map{84+($z++%2?shift @_:18)}qw<P E R L>;
print map{chr&$x(map{ord}split//)+shift(@=)}sort qw"Who is Perl guru?";

#
# who-is-perl-guru.pl
#
# Copyright (c) 2006 Lubomir Host 'rajo' <rajo AT platon.sk>
# All rights reserved.
#
# $Author: rajo $
# $Date: 2006-02-05 18:03:09 +0100 (Sun, 05 Feb 2006) $
# $Revision: 3206 $
#