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 $
#



