<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Dar vieno analitiko svetainė &#187; Perl</title>
	<atom:link href="http://petras.kudaras.lt/archyvas/category/perl/feed" rel="self" type="application/rss+xml" />
	<link>http://petras.kudaras.lt</link>
	<description>Petras Kudaras</description>
	<lastBuildDate>Fri, 16 Jul 2010 05:39:17 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0</generator>
		<item>
		<title>Reikalingi Perlo dokumentacijos vertėjai</title>
		<link>http://petras.kudaras.lt/archyvas/2006-10-13/reikalingi-perlo-dokumentacijos-vertejai.html</link>
		<comments>http://petras.kudaras.lt/archyvas/2006-10-13/reikalingi-perlo-dokumentacijos-vertejai.html#comments</comments>
		<pubDate>Fri, 13 Oct 2006 09:16:47 +0000</pubDate>
		<dc:creator>Petras Kudaras</dc:creator>
				<category><![CDATA[Lietuva]]></category>
		<category><![CDATA[Perl]]></category>

		<guid isPermaLink="false">http://petras.kudaras.lt/?p=585</guid>
		<description><![CDATA[Vakar gavau laišką iš žmogaus, kuris ruošiasi standartizuoti Perlo programavimo kalbos dokumentacijos vertimo sistemą. Kadangi prieš kokius trejus metus aktyviai tame reiškiausi, tai jis pakvietė mane prisidėti: I am currently planning to create a platform/repository for the translation of the Perl documentation. I would like to invite you to join the &#8220;core team&#8221; that does [...]]]></description>
			<content:encoded><![CDATA[<p>Vakar gavau laišką iš žmogaus, kuris ruošiasi standartizuoti Perlo programavimo kalbos dokumentacijos vertimo sistemą. Kadangi prieš kokius trejus metus aktyviai tame reiškiausi, tai jis pakvietė mane prisidėti:</p>
<blockquote><p>I am currently planning to create a platform/repository for the<br />
translation of the Perl documentation. I would like to invite you to<br />
join the &#8220;core team&#8221; that does the initial planning and will hopefully<br />
co-ordinate the translations as well as contribute to them.</p>
<p>If you are interested in getting involved, please read my &#8220;Initial<br />
Posting&#8221; to get a more comprehensive view on this project:</p>
<p><a href="http://perldoc2.joergen-lang.com/?p=3">http://perldoc2.joergen-lang.com/?p=3</a></p></blockquote>
<p>Bėda tame, kad kai perėjau į finansų sritį, su programavimu ir Perlu nelabai ką turiu bendro, tad gal kas nors iš programuotojų ar dokumentacijos vertėjų (kurie dar šioje svetainėje retkarčiais apsilanko) norėtų prisidėti prie šio projekto? Pats tikiuosi atrasti laiko perdėti į naują sistemą (kai ji jau bus sukurta) tuos kelis menkus straipsnelius, kuriuos esu išvertęs.</p>
]]></content:encoded>
			<wfw:commentRss>http://petras.kudaras.lt/archyvas/2006-10-13/reikalingi-perlo-dokumentacijos-vertejai.html/feed</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Kwiki, Perlinis wiki</title>
		<link>http://petras.kudaras.lt/archyvas/2005-04-12/kwiki-perlinis-wiki.html</link>
		<comments>http://petras.kudaras.lt/archyvas/2005-04-12/kwiki-perlinis-wiki.html#comments</comments>
		<pubDate>Tue, 12 Apr 2005 08:12:55 +0000</pubDate>
		<dc:creator>Petras Kudaras</dc:creator>
				<category><![CDATA[Perl]]></category>

		<guid isPermaLink="false">http://petras.kudaras.lt/?p=423</guid>
		<description><![CDATA[Šiandien darbe pasikūriau dar vieną nedidelę wiki sistemėlę visokiems greitiems užrašams susikategorizuoti. Savaime suprantama (na, savaime suprantama, jeigu pažįstate mane), ji rašyta Perlu. Labiausiai maloniai nustebino jos įdiegimas. Tereikia instaliuotis modulį per CPAN ir parašyti tris eilutes konsolėje: moxliukas@bluecarrot:~$ mkdir public_html/kwiki moxliukas@bluecarrot:~$ cd public_html/kwiki moxliukas@bluecarrot:~/public_html/kwiki$ kwiki-install Kwiki software installed! Point your browser at this location. [...]]]></description>
			<content:encoded><![CDATA[<p>Šiandien darbe pasikūriau dar vieną nedidelę <span style="font-style: italic">wiki</span> sistemėlę visokiems greitiems užrašams susikategorizuoti. Savaime suprantama (na, savaime suprantama, jeigu pažįstate mane), ji rašyta Perlu. Labiausiai maloniai nustebino jos įdiegimas. Tereikia instaliuotis modulį per <a href="http://search.cpan.org">CPAN</a> ir parašyti tris eilutes konsolėje:</p>
<pre>moxliukas@bluecarrot:~$ mkdir public_html/kwiki
moxliukas@bluecarrot:~$ cd public_html/kwiki
moxliukas@bluecarrot:~/public_html/kwiki$ kwiki-install
Kwiki software installed! Point your browser at this location.</pre>
<p>Paprasčiau nebūna. Beje, ši <span style="font-style: italic">wiki</span> sistema vadinasi <span style="font-style: italic">Kwiki</span>, o ją galima rasti <a href="http://search.cpan.org/%7Eingy/CGI-Kwiki-0.18/">čia</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://petras.kudaras.lt/archyvas/2005-04-12/kwiki-perlinis-wiki.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Perl klaida</title>
		<link>http://petras.kudaras.lt/archyvas/2004-03-03/perl-klaida.html</link>
		<comments>http://petras.kudaras.lt/archyvas/2004-03-03/perl-klaida.html#comments</comments>
		<pubDate>Wed, 03 Mar 2004 15:42:05 +0000</pubDate>
		<dc:creator>Petras Kudaras</dc:creator>
				<category><![CDATA[Perl]]></category>

		<guid isPermaLink="false">http://petras.kudaras.lt/?p=362</guid>
		<description><![CDATA[Pastarąją savaitę Perl susirašinėjimo sąrašuose labai aštriai diskutuojama viena Perl klaida, kuri ką tik buvo ištaisyta. Kai kurie sako, kad tai visai ne klaida, kad viskas turėtų būti palikta kaip ir buvo. Na, gal kas galit pasakyti, kur čia klaida šitame sakinyje: my $foo = 1 if $bar; Problema yra tame, kad $foo yra leksinis [...]]]></description>
			<content:encoded><![CDATA[<p>Pastarąją savaitę Perl susirašinėjimo sąrašuose labai aštriai diskutuojama viena Perl klaida, kuri ką tik buvo ištaisyta. Kai kurie sako, kad tai visai ne klaida, kad viskas turėtų būti palikta kaip ir buvo. Na, gal kas galit pasakyti, kur čia klaida šitame sakinyje:</p>
<pre>my $foo = 1 if $bar;</pre>
<p>Problema yra tame, kad $foo yra leksinis kintamasis, ir nelabai aišku, kaip apibrėžti jo galiojimo sritį. Jeigu tą patį perrašysime kitaip, tai srities ribos žymiai paaiškės:</p>
<pre>if ($bar) {
      my $foo = 1;
}</pre>
<p>Iš čia paaiškėja, jog priskyrimas <code>my $foo = 1;</code> yra visiškai bevertis, nes $foo yra vietinis (leksinis) kintamasis, kurio galiojimas pasibaigia tuoj už figūrinių skliaustelių užsidarymo. Bet čia ir yra visa klaida, nes iki šiol jo galiojimas nebuvo užbaigiamas čia pat:</p>
<pre>[petras@lietuvoje ~]$ perl -Mstrict -wle 'my $bar = 1; my $foo = 1 if $bar;
print $foo;'
1</pre>
<p>&#8230;kai Perlas turėtų pasiskųsti, kad bandoma pasiekti nenustatytą kintamąjį.</p>
<p>Dabar ši klaida pataisyta, bet audros nerimsta, nes pasirodo nemažai kodo priklauso nuo šitos klaidos.</p>
]]></content:encoded>
			<wfw:commentRss>http://petras.kudaras.lt/archyvas/2004-03-03/perl-klaida.html/feed</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>Perl konferencija?</title>
		<link>http://petras.kudaras.lt/archyvas/2004-03-02/perl-konferencija.html</link>
		<comments>http://petras.kudaras.lt/archyvas/2004-03-02/perl-konferencija.html#comments</comments>
		<pubDate>Tue, 02 Mar 2004 15:47:53 +0000</pubDate>
		<dc:creator>Petras Kudaras</dc:creator>
				<category><![CDATA[Lietuva]]></category>
		<category><![CDATA[Pastebėjimai]]></category>
		<category><![CDATA[Perl]]></category>

		<guid isPermaLink="false">http://petras.kudaras.lt/?p=361</guid>
		<description><![CDATA[Po PHP konferencijos jau kokie trys žmonės manęs teiravosi, ar aš nesiruošiu daryti kokios nors atsakomosios konferencijos Perl tema. Tiesą sakant tokia maža ir neryžtinga mintis buvo kilus, paskui labai greitai jos atsisakiau, o vat dabar tie klausinėjimai vėl privertė ją prisiminti. Konferenciją suorganizuoti gal ir nėra taip sudėtinga, tačiau pats neaiškiausias dalykas būtų tokios [...]]]></description>
			<content:encoded><![CDATA[<p><a href="index.pl?id=350">Po PHP konferencijos</a> jau kokie trys žmonės manęs teiravosi, ar aš nesiruošiu daryti kokios nors atsakomosios konferencijos Perl tema. Tiesą sakant tokia maža ir neryžtinga mintis buvo kilus, paskui labai greitai jos atsisakiau, o vat dabar tie klausinėjimai vėl privertė ją prisiminti.</p>
<p>Konferenciją suorganizuoti gal ir nėra taip sudėtinga, tačiau pats neaiškiausias dalykas būtų tokios konferencijos reikalingumas (na&#8230; kiek žmonių iš vis tai būtų įdomu&#8230; Lietuvoj ta Perlo kalba yra primiršta ir entuziastų kaip ir nedaug) bei jos kokybė (Tarkim Perlo pradmenis aš moku gal ir neblogai, bei moku pritaikyti jį web aplinkoje, bet su sistemų administravimo moduliais nesu dirbęs&#8230; ir ar atsirastų žmonių kurie sutiktų aukoti savo laiką ir būtų pasiruošę pašnekėti apie vieną ar kitą niuansą).</p>
<p><em>Randal Schwartz</em> nuomone galima per vieną dieną (8-10 valandų) išdėstyti visą <a href="http://www.oreilly.com/catalog/lperl3/">Learning Perl</a>, bet visgi tam reikia tikrai nemažai pasiruošimo, ir vėlgi neaišku ar<br />
tai kam nors reikalinga. Be to, turbūt nedaug žmonių mokosi Perlo šiais laikais kaip pirmos programavimo kalbos, tad galbūt jiems nebereikia paskaitų nuo nulio?</p>
<p>Mano nuomone, dabar turbūt geriausia būtų neorganizuoti kažkokios Perlo konferencijos, o tiesiog pabandyti įkurti <a href="http://www.pm.org">Perl Mongers</a> grupę, kuri galėtų kiekvieną mėnesį ar panašiai susitikti, gal išklausyti vieno ar kito trumpo pranešimo ir išgerti draugiškai alaus. Vėlgi, jei tai ką sudomintų. Na, bent jau kokius 5 žmones tai tikiuosi surinksim ;)</p>
<p>Tai va, jeigu turit kokių idėjų, ar bent jau jus tai domintų, tai netylėkit ir susisiekit su manim ;-)</p>
]]></content:encoded>
			<wfw:commentRss>http://petras.kudaras.lt/archyvas/2004-03-02/perl-konferencija.html/feed</wfw:commentRss>
		<slash:comments>13</slash:comments>
		</item>
		<item>
		<title>Parrot bei egzegezės</title>
		<link>http://petras.kudaras.lt/archyvas/2004-03-01/parrot-bei-egzegezes.html</link>
		<comments>http://petras.kudaras.lt/archyvas/2004-03-01/parrot-bei-egzegezes.html#comments</comments>
		<pubDate>Mon, 01 Mar 2004 11:07:07 +0000</pubDate>
		<dc:creator>Petras Kudaras</dc:creator>
				<category><![CDATA[Perl]]></category>

		<guid isPermaLink="false">http://petras.kudaras.lt/?p=360</guid>
		<description><![CDATA[Vakar išleista pirma jau kiek rimtesnė Parrot versija – v0.1.0. Parrot yra platforma, šiek tiek panaši į .NET bei JVM, skirta interpretuojamoms kalboms kaip PHP, Ruby, Python, TCL, Basic, LISP, o ypač Perl6. Šioje naujoje versijoje svarbiausi pokyčiai yra gijų palaikymas (threads), bei svarbiausia – objektai. Taipogi atsirado daug daugiau dokumentacijos. Parsisiųsti galima adresu http://www.cpan.org/authors/id/L/LT/LTOETSCH/parrot-0.1.0.tar.gz, [...]]]></description>
			<content:encoded><![CDATA[<p>Vakar išleista pirma jau kiek rimtesnė Parrot versija – v0.1.0. Parrot yra platforma, šiek tiek panaši į .NET bei JVM, skirta interpretuojamoms kalboms kaip PHP, Ruby, Python, TCL, Basic, LISP, o ypač Perl6. Šioje naujoje versijoje svarbiausi pokyčiai yra gijų palaikymas (<em>threads</em>), bei svarbiausia – objektai. Taipogi atsirado daug daugiau dokumentacijos. Parsisiųsti<br />
galima adresu <a href="http://www.cpan.org/authors/id/L/LT/LTOETSCH/parrot-0.1.0.tar.gz">http://www.cpan.org/authors/id/L/LT/LTOETSCH/parrot-0.1.0.tar.gz</a>,<br />
o daugiau apie patį Parrot – <a href="http://parrotcode.org">http://parrotcode.org</a>.</p>
<p>Tuo tarpu <em>Damian Conway</em> išleido <a href="http://www.perl.com/pub/a/2004/02/27/exegesis7.html">septintą egzegezę</a> (Perl6 sintaksės aprašymą) apie tai, kas Perl6 pakeis Perl5 <a href="http://www.perldoc.com/perl5.6/pod/perlform.html">formatus</a>. Atrodo, jog galų gale šių metų pabaigoje jau turėsim Perl6 specifikaciją ir po dar kokio pusmečio turėtume veikiantį Perl 6.0.0.</p>
]]></content:encoded>
			<wfw:commentRss>http://petras.kudaras.lt/archyvas/2004-03-01/parrot-bei-egzegezes.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Perl poezija</title>
		<link>http://petras.kudaras.lt/archyvas/2004-02-25/perl-poezija.html</link>
		<comments>http://petras.kudaras.lt/archyvas/2004-02-25/perl-poezija.html#comments</comments>
		<pubDate>Wed, 25 Feb 2004 23:06:44 +0000</pubDate>
		<dc:creator>Petras Kudaras</dc:creator>
				<category><![CDATA[Gyvenimas]]></category>
		<category><![CDATA[Perl]]></category>

		<guid isPermaLink="false">http://petras.kudaras.lt/?p=358</guid>
		<description><![CDATA[$you-&#62;said("Who needs tommorow?") while $we-&#62;have($tonight); $I = shift @closer for @love; Berods įsimylėjau.]]></description>
			<content:encoded><![CDATA[<pre>$you-&gt;said("Who needs tommorow?")
while $we-&gt;have($tonight);
$I = shift @closer for @love;</pre>
<p>Berods įsimylėjau.</p>
]]></content:encoded>
			<wfw:commentRss>http://petras.kudaras.lt/archyvas/2004-02-25/perl-poezija.html/feed</wfw:commentRss>
		<slash:comments>8</slash:comments>
		</item>
		<item>
		<title>Naujos versijos</title>
		<link>http://petras.kudaras.lt/archyvas/2004-02-23/naujos-versijos.html</link>
		<comments>http://petras.kudaras.lt/archyvas/2004-02-23/naujos-versijos.html#comments</comments>
		<pubDate>Mon, 23 Feb 2004 16:12:52 +0000</pubDate>
		<dc:creator>Petras Kudaras</dc:creator>
				<category><![CDATA[Perl]]></category>
		<category><![CDATA[Trupiniai]]></category>

		<guid isPermaLink="false">http://petras.kudaras.lt/?p=357</guid>
		<description><![CDATA[Keletas naujienų iš naujų versijų pasaulio: ką tik išleistas Perl 5.005_04. Tai labai senas perlas, tačiau jei kartais sėdite prie senų dinozaurų, tai atsinaujinimas nepakenks. Daugiausia šioje versijoje yra klaidų pataisymai, bei pritaikymai naujesniems kompiliatoriams. Kita, įdomesnė naujiena, yra Subversion 1.0 išleidimas. Subversion yra bylų versijų kontrolės sistema, kuri ruošiasi pakeisti CVS. Subversion išsprendžia problemas, [...]]]></description>
			<content:encoded><![CDATA[<p>Keletas naujienų iš naujų versijų pasaulio: ką tik išleistas Perl 5.005_04. Tai labai senas perlas, tačiau jei kartais sėdite prie senų dinozaurų, tai atsinaujinimas nepakenks. Daugiausia šioje versijoje yra klaidų pataisymai, bei pritaikymai naujesniems kompiliatoriams.</p>
<p>Kita, įdomesnė naujiena, yra <a href="http://subversion.tigris.org/">Subversion</a> 1.0 išleidimas. Subversion yra bylų versijų kontrolės sistema, kuri ruošiasi pakeisti <abbr title="Concurrent Version System">CVS</abbr>. Subversion išsprendžia problemas,<br />
nuo kurių kenčia <abbr title="Concurrent Version System">CVS</abbr> – ji palaiko bylų pervadinimą, direktorijų struktūros pokyčius, dvejetaines bylas, metaduomenų pokyčius ir t.t.</p>
<p>Oh, ir dar šiek tiek krapštausi su <a href="http://moxliukas.esu.as/moxwiki/">moxwiki</a>. Žiūrėsiu, kiek čia nenusibos.</p>
]]></content:encoded>
			<wfw:commentRss>http://petras.kudaras.lt/archyvas/2004-02-23/naujos-versijos.html/feed</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Perliška vartotojų sistema</title>
		<link>http://petras.kudaras.lt/archyvas/2004-02-22/perliska-vartotoju-sistema.html</link>
		<comments>http://petras.kudaras.lt/archyvas/2004-02-22/perliska-vartotoju-sistema.html#comments</comments>
		<pubDate>Sun, 22 Feb 2004 23:00:24 +0000</pubDate>
		<dc:creator>Petras Kudaras</dc:creator>
				<category><![CDATA[Perl]]></category>
		<category><![CDATA[Programavimas]]></category>

		<guid isPermaLink="false">http://petras.kudaras.lt/?p=356</guid>
		<description><![CDATA[Skaičiausi čia neseniai apie Perlo modulį Class::DBI ir šiandieną sumaniau jį šiek tiek išbandyti. Šis modulis yra duomenų bazės objektinė abstrakcija, ir viską daro tokiame aukštame lygyje (t.y. taip toli nuo pačios duomenų bazės), kad norint ja naudotis net nereikia mokėti SQL (OK, OK, SQL visada pravartu mokėti, bet labai paprastiems dalykams gali to ir [...]]]></description>
			<content:encoded><![CDATA[<p>Skaičiausi čia neseniai apie Perlo modulį <a href="http://search.cpan.org/author/TMTM/Class-DBI-0.95/lib/Class/DBI.pm">Class::DBI</a> ir šiandieną sumaniau jį šiek tiek išbandyti. Šis modulis yra duomenų bazės objektinė abstrakcija, ir viską daro tokiame aukštame lygyje (t.y. taip toli nuo pačios duomenų bazės), kad norint ja naudotis net nereikia mokėti <abbr title="Sequential Query Language">SQL</abbr> (OK, OK, <abbr title="Sequential Query Language">SQL</abbr> visada pravartu mokėti, bet labai paprastiems dalykams gali to ir neprireikti). Taigi išbandymui sugalvojau pasirašyti vartotojų prisijungimo sistemą.</p>
<p><code>Class::DBI</code> priverčia viską apgalvoti ir išdėlioti objektiškai, į atskirus modulius, tad atsiranda krūvos mažų failiukų, kuriuos reikia dėti kažkur į atskirą <code>lib</code> direktoriją. Bet pirma pradėkim nuo <abbr title="Sequential Query Language">SQL</abbr> lentelės:</p>
<pre>
CREATE TABLE `vartotojai` (
  `vartotojoid` int(11) NOT NULL auto_increment,
  `login` varchar(40) NOT NULL default '',
  `pass` varchar(32) NOT NULL default '',
  `status` int(11) NOT NULL default '0',
  `vartotojaskada` timestamp(14) NOT NULL,
   PRIMARY KEY  (`vartotojoid`),
   UNIQUE KEY `login` (`login`)
) TYPE=MyISAM PACK_KEYS=0 AUTO_INCREMENT=1;</pre>
<p>Tiesa, <code>login</code> yra unikalus, tad realiai užtektų tik jį padaryt pirminiu raktu, bet man kažkodėl patinka turėti ir skaitinį vartotojo ID. Nevisai dar sugalvojau kodėl.</p>
<p>Pradedam apsirašinėti duomenų bazę. Byloje <code>lib/Bilekas/DBI.pm</code> saugom duomenų bazės prisijungimo duomenis:</p>
<pre>package Bilekas::DBI;
use base 'Class::DBI';
Bilekas::DBI-&gt;set_db('Main', 'dbi:mysql:bilekas', "root", "");
1;</pre>
<p>Apsirašome klasę <code>Bilekas::Vartotojas</code> ir išsaugom byloje <code>lib/Bilekas/Vartotojas.pm</code>:</p>
<pre>package Bilekas::Vartotojas;
use base 'Bilekas::DBI';
Bilekas::Vartotojas-&gt;table('vartotojai');
Bilekas::Vartotojas-&gt;columns(All =&gt; qw/vartotojoid login pass status vartotojaskada/);
1;</pre>
<p><code>Bilekas::Vartotojas</code> modulyje užtenka tik nurodyti kurią SQL lentelę naudoti, bei kokie yra tos lentelės stulpeliai (jeigu būtų ir daugiau lentelių tai reikėtų nurodyti ir ryšius tarp jų)</p>
<p>Galvojant apie ateitį, reikėtų pasirašyti ir vieną pagrindinį modulį <code>Bilekas.pm</code>, kuris būtų atsakingas už bendrą visai svetainei kodą (reikiamų modulių užkrovimą, CGI objekto sukūrimą, sesijas ir pan). Štai ir <code>Bilekas.pm</code>:</p>
<pre>package Bilekas;
use strict;
use CGI;
use CGI::Session;

BEGIN {
        use Exporter ();
	our (@ISA, @EXPORT);
        @ISA = qw/Exporter/;
        @EXPORT = qw/$q $s/;
}

our $q = new CGI;
our $s = new CGI::Session("driver:File", $q, {Directory =&gt; '/tmp'});

END {
	$s-&gt;close;
}
1;</pre>
<p>Šiame pakete yra šiek tiek magijos, kurią vertėtų paaiškinti. Pačioje pradžioje yra užkraunami moduliai <code>CGI</code> ir <code>CGI::Session</code>. Toliau eina BEGIN blokas, kuriuo iš paketo <code>Bilekas</code> vardų srities (<em>namespace</em>) eksportuojami kintamieji <code>$q</code> ir <code>$s</code> – tai leidžia vėliau bet kurioje byloje parašius <code>use Bilekas;</code> iš karto naudotis jau sukurtais ir užpildytais kintamaisiais <code>$q</code> ir <code>$s</code> (viename iš jų yra CGI objektas, o kitame – sesijos objektas).</p>
<p>Kitomis dvi eilutėmis yra sukuriami minėtieji eksportuojami kintamieji, o po to seka END blokas, kuri yra vykdomas paskutiniu programos gyvavimo metu. Jo pareiga yra teisingai įrašyti visus sesijos duomenis į bylą, kad jie neliktų laikinojoje atmintinėje (tą daro <code>$s-&gt;close;</code>)</p>
<p>Kadangi turime šitus modulius, galima pradėti jais naudotis. Pirma parašome <code>index.pl</code>, kuris nesant užsiregistravusio vartotojo rodys formą, kurios pagalba galima prisijungti prie sistemos:</p>
<pre>#!/usr/bin/perl -w
use strict;
use lib './lib';

# Mūsų parašytieji moduliai
use Bilekas;
use Bilekas::Vartotojas;

# Siunčiame HTTP antraštes (su sausainiuku su sesijos informacija)
print $s-&gt;header;

# Jeigu yra nustatytas sesijos kintamasis, pranešantis apie klaidą, tai ją išspausdiname
if($s-&gt;param("bilekas_error")) {
        print "&lt;h1&gt;!!! " . $s-&gt;param("bilekas_error") . " !!!&lt;/h1&gt;";
	# Išspausdinę klaidos pranešimą ištriname šį sesijos kintamąjį, kad
	# nespausdintume klaidos keletą kartų
        $s-&gt;clear(['bilekas_error']);
}

# Jeigu yra nustatytas sesijos kintamasis 'user', reiškia vartotojas prisijungęs
if($s-&gt;param('user')) {
        print "Esi isilogines kaip UID &lt;em&gt;", $s-&gt;param('user')-&gt;{vartotojoid}, "&lt;/em&gt;";
} else {
	# Vartotojas neprisijungęs, rodome prisijungimo formą
        print &lt;&lt;EOHTML;
        &lt;form action="login.pl" method="post"&gt;
        &lt;input type="text" name="user"&gt;&lt;br&gt;
        &lt;input type="password" name="pass"&gt;&lt;br&gt;
        &lt;input type="submit"&gt;
        &lt;/form&gt;
EOHTML
}</pre>
<p>Beliko parašyti patį prisijungimo kodą <code>login.pl</code>:</p>
<pre>#!/usr/bin/perl -w
use strict;
use lib './lib';

use Bilekas;
use Bilekas::Vartotojas;
use Digest::MD5 qw/md5_hex/;

my $location = $q-&gt;referer || 'index.pl';

if ($q-&gt;param('user') &amp;&amp; $q-&gt;param('pass')) {
        my $user = Bilekas::Vartotojas-&gt;retrieve(login =&gt; $q-&gt;param('user'),
                                                 pass  =&gt; md5_hex($q-&gt;param('pass')));
	if ($user) {
		$s-&gt;param('user', $user);
		$s-&gt;expire(user =&gt; "+15m");
	} else {
		$s-&gt;param('bilekas_error', "Blogas login/pass");
        }
}

print $s-&gt;header(-location =&gt; $location);</pre>
]]></content:encoded>
			<wfw:commentRss>http://petras.kudaras.lt/archyvas/2004-02-22/perliska-vartotoju-sistema.html/feed</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Sitepoint apie PHP::Strings</title>
		<link>http://petras.kudaras.lt/archyvas/2004-02-19/sitepoint-apie-phpstrings.html</link>
		<comments>http://petras.kudaras.lt/archyvas/2004-02-19/sitepoint-apie-phpstrings.html#comments</comments>
		<pubDate>Thu, 19 Feb 2004 10:32:31 +0000</pubDate>
		<dc:creator>Petras Kudaras</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[Pastebėjimai]]></category>
		<category><![CDATA[Perl]]></category>
		<category><![CDATA[Programavimas]]></category>

		<guid isPermaLink="false">http://petras.kudaras.lt/?p=355</guid>
		<description><![CDATA[Harry Fuecks, PHPPatterns kūrėjas ir sitepoint PHP weblogo savininkas, pastebėjo minėtame webloge mano dabar palaikomą Perlo modulį PHP::Strings. Harry klaidingai mano, jog perlininkai priešiškai nusiteikę prieš PHP dėl to, kad pavydi jam sėkmės. Kiek teko bendrauti su viso pasaulio perlininkais, tai požiūris į PHP visada būdavo neigiamas ne dėl pavydo, o dėl to, kad PHP [...]]]></description>
			<content:encoded><![CDATA[<p><em>Harry Fuecks</em>, <a href="http://www.phppatterns.com/">PHPPatterns</a> kūrėjas ir <a href="http://www.sitepoint.com">sitepoint</a> <abbr title="PHP:&lt;br&gt;&lt;/abbr&gt; Hypertext Preprocessor">PHP</abbr> <em>weblogo</em> savininkas, pastebėjo <a href="http://www.sitepoint.com/blog-post-view.php?id=153748"<br />
rel="vote-abstain">minėtame</a> <em>webloge</em> mano dabar palaikomą Perlo modulį <a href="http://search.cpan.org/~kudarasp/PHP-Strings-0.28/">PHP::Strings</a>. Harry klaidingai mano, jog perlininkai priešiškai nusiteikę prieš <abbr title="PHP: Hypertext Preprocessor">PHP</abbr> dėl to, kad pavydi jam sėkmės. Kiek teko bendrauti su viso pasaulio perlininkais, tai požiūris į <abbr title="PHP: Hypertext Preprocessor">PHP</abbr> visada būdavo neigiamas ne dėl pavydo, o dėl to, kad <abbr title="PHP: Hypertext Preprocessor">PHP</abbr> nelaikoma <strong>rimta</strong> kalba (dėl tokio įsitikinimo  teisingumo, aišku, galima ginčytis, bet <em>enterprise</em> lygyje <abbr title="PHP: Hypertext&lt;br&gt;&lt;/abbr&gt; Preprocessor">PHP</abbr> vis dar neturi tokių stiprių pozicijų kaip Perl, Java ir panašiai). Na, tikiuosi neužvirs šventasis karas dėl mano palaikomo modulio. Juolab, kad stengsiuosi jį padaryti naudingesniu <abbr title="PHP: Hypertext&lt;br&gt;&lt;/abbr&gt; Preprocessor">PHP</abbr> programuotojams.</p>
]]></content:encoded>
			<wfw:commentRss>http://petras.kudaras.lt/archyvas/2004-02-19/sitepoint-apie-phpstrings.html/feed</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>Smarty ant Perl?</title>
		<link>http://petras.kudaras.lt/archyvas/2004-02-06/smarty-ant-perl.html</link>
		<comments>http://petras.kudaras.lt/archyvas/2004-02-06/smarty-ant-perl.html#comments</comments>
		<pubDate>Fri, 06 Feb 2004 11:24:56 +0000</pubDate>
		<dc:creator>Petras Kudaras</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[Perl]]></category>

		<guid isPermaLink="false">http://petras.kudaras.lt/?p=341</guid>
		<description><![CDATA[Perlo konferencijoje buvo iškeltas pasiūlymas, kad į standartinius Perlo modulius reiktų įtraukti ir kokią nors šablonų sistemą. Tiesa, ši idėja priimta nelabai gerai, nes paskutiniu metu stengiamasi Perlą sumažinti kiek įmanoma paliekant tik svarbiausius modulius, kurių reikia pačiam Perlui bei kitų modulių pasiėmimui per CPAN. Tačiau šioje diskusijoje iškilo dar viena labai idomi idėja – [...]]]></description>
			<content:encoded><![CDATA[<p>Perlo konferencijoje buvo iškeltas pasiūlymas, kad į standartinius Perlo modulius reiktų įtraukti ir kokią nors šablonų sistemą. Tiesa, ši idėja priimta nelabai gerai, nes paskutiniu metu stengiamasi Perlą sumažinti kiek įmanoma paliekant tik svarbiausius modulius, kurių reikia pačiam Perlui bei kitų modulių pasiėmimui per <abbr title="Comprehensive Perl Archive Network">CPAN</abbr>.</p>
<p>Tačiau šioje diskusijoje iškilo dar viena labai idomi idėja – galbūt reikėtų <em>nuportinti</em> <a href="http://smarty.php.net">Smarty</a> ant Perl. Štai citata:</p>
<blockquote><p>By the way, has anyone written a perl module to correctly interpret the<br />
&#8220;Smarty&#8221; templating language?  My PHP-using co-workers claim it is<br />
becoming the de-facto standard in PHP. This strikes me as odd because<br />
I thought PHP was itself a templating system, but it seems the division<br />
of labor between Modern HTML and Process has become such that it is no<br />
longer enough to embed PHP in web pages, and the PHP &#8220;web applications&#8221;<br />
are now explicitly generating their output from read-in external files<br />
just like the Perl templating systems.  Go figure.</p></blockquote>
<p>Gal kas apsiimat portint <a href="http://pukomuko.esu.lt/phemplate/">phemplate</a>? ;-)</p>
]]></content:encoded>
			<wfw:commentRss>http://petras.kudaras.lt/archyvas/2004-02-06/smarty-ant-perl.html/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
	</channel>
</rss>
