<?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/"
	xmlns:coop="http://www.google.com/coop/namespace"
	>

<channel>
	<title>Administrare server open source &#187; Perl</title>
	<atom:link href="http://www.lamp.ro/category/perl-practical-extraction-and-report-language/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.lamp.ro</link>
	<description>Platforma de hosting cu software liber, gratuit, open source.</description>
	<lastBuildDate>Thu, 20 Oct 2011 14:09:21 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>Exemplu de crawler in Perl</title>
		<link>http://www.lamp.ro/perl-practical-extraction-and-report-language/exemplu-de-crawler-in-perl/</link>
		<comments>http://www.lamp.ro/perl-practical-extraction-and-report-language/exemplu-de-crawler-in-perl/#comments</comments>
		<pubDate>Thu, 27 May 2010 18:40:51 +0000</pubDate>
		<dc:creator>Sergiu Tot</dc:creator>
				<category><![CDATA[Perl]]></category>
		<category><![CDATA[Apache]]></category>
		<category><![CDATA[ubuntu-ro]]></category>

		<guid isPermaLink="false">http://www.lamp.ro/?p=244</guid>
		<description><![CDATA[<p>Unul din motivele pentru care Perl este un limbaj preferat in randul administratorilor de sistem este usurinta cu care putem crea diferite aplicatii complexe. O astfel de aplicatie este un crawler pentru siteuri web. Folosind modulul WWW::Mechanize putem crea un crawler simplu, dar care se poate dovedi eficient in majoritatea cazurilor.
Pentru simplitate am preferat un crawler care foloseste un fisier text pentru salvarea linkurilor.
Pentru a pune in functiune cralwerul am creat un script cu patru subrutine:

getHostname &#8211; pentru preluarea hostului din URL-ul de pornire;
save &#8211; salveaza un link in fisierul care tine evidenta linkurilor catre paginile parsate;
saved &#8211; verifica daca linkul citit este deja salvat;
getLinks &#8211; citeste URL-ul primit ca parametru, parseaza... <a href='http://www.lamp.ro/perl-practical-extraction-and-report-language/exemplu-de-crawler-in-perl/' rel="nofollow">Mai departe &raquo;</a></p>Unul din motivele pentru care Perl este un limbaj preferat in randul administratorilor de sistem este usurinta cu care putem crea diferite aplicatii complexe. O astfel de aplicatie este un crawler pentru siteuri web. Folosind modulul WWW::Mechanize putem crea un crawler simplu, dar care se poate dovedi eficient in majoritatea cazurilor.

Pentru simplitate am preferat un]]></description>
		<wfw:commentRss>http://www.lamp.ro/perl-practical-extraction-and-report-language/exemplu-de-crawler-in-perl/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
			<coop:keyword><![CDATA[Perl]]></coop:keyword>
		<coop:keyword><![CDATA[Apache]]></coop:keyword>
		<coop:keyword><![CDATA[ubuntu-ro]]></coop:keyword>
	</item>
		<item>
		<title>Cum citim argumentele din linia de comanda in Perl</title>
		<link>http://www.lamp.ro/perl-practical-extraction-and-report-language/cum-citim-argumentele-in-perl/</link>
		<comments>http://www.lamp.ro/perl-practical-extraction-and-report-language/cum-citim-argumentele-in-perl/#comments</comments>
		<pubDate>Mon, 24 Aug 2009 14:52:12 +0000</pubDate>
		<dc:creator>Sergiu Tot</dc:creator>
				<category><![CDATA[Perl]]></category>
		<category><![CDATA[Shell]]></category>

		<guid isPermaLink="false">http://www.lamp.ro/?p=175</guid>
		<description><![CDATA[<p>In Perl argumentele date din linia de comanda se pastreaza intr-un array numit @ARGV. Numarul total de argumente este $#ARGV+1. Daca pare ciudat pentru programatorii in C sau alte limbaje, numarul total de argumente este $#ARGV+1 pentru ca @ARGV[0] este primul argument, nu numele aplicatiei.
Cand verificam daca s-a dat un argument, trebuie ca $#ARGV+1 sa fie 1 sau mai mare. Argumentele le citim de forma: $ARGV[index]. Un exemplu, mai jos:
16ed9d60564274b79d2ecaef570b987c002

... <a href='http://www.lamp.ro/perl-practical-extraction-and-report-language/cum-citim-argumentele-in-perl/' rel="nofollow">Mai departe &raquo;</a></p>In Perl argumentele date din linia de comanda se pastreaza intr-un array numit @ARGV. Numarul total de argumente este $#ARGV+1. Daca pare ciudat pentru programatorii in C sau alte limbaje, numarul total de argumente este $#ARGV+1 pentru ca @ARGV[0] este primul argument, nu numele aplicatiei.

Cand verificam daca s-a dat un argument, trebuie ca $#ARGV+1 sa]]></description>
		<wfw:commentRss>http://www.lamp.ro/perl-practical-extraction-and-report-language/cum-citim-argumentele-in-perl/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
			<coop:keyword><![CDATA[Perl]]></coop:keyword>
		<coop:keyword><![CDATA[Shell]]></coop:keyword>
	</item>
		<item>
		<title>Mirror default pentru CPAN</title>
		<link>http://www.lamp.ro/perl-practical-extraction-and-report-language/mirror-default-pentru-cpan/</link>
		<comments>http://www.lamp.ro/perl-practical-extraction-and-report-language/mirror-default-pentru-cpan/#comments</comments>
		<pubDate>Fri, 24 Jul 2009 15:13:40 +0000</pubDate>
		<dc:creator>Sergiu Tot</dc:creator>
				<category><![CDATA[Perl]]></category>
		<category><![CDATA[CPAN]]></category>

		<guid isPermaLink="false">http://www.lamp.ro/?p=157</guid>
		<description><![CDATA[<p>Desi jonglarea cu mirrorurile e o chestie frecventa in diferite aplicatii, CPAN nu ofera o metoda standard de setare a ordinii mirrorurilor dupa configurare. Daca tineti minte, la prima instalare CPAN se cer cateva detalii legate de modul in care va functiona, printre care si mirrorurile preferate si ordinea acestora.
Daca din neatentie nu selectam mirrorurile care au cea mai buna viteza pentru noi sau daca din diverse motive dorim sa schimbam ordinea o putem face intrand in shellul CPAN pentru a reface setarile folosind urmatoarele comenzi:
16ed9d60564274b79d2ecaef570b987c003
Comanda &#8220;o conf init&#8221; rulata in shellul CPAN ne va duce din nou prin toti pasii de configurare. Aici avem ocazia sa schimbam setarile care nu ne convin, inclusiv ordinea mirrorurilor, iar la final datele ... <a href='http://www.lamp.ro/perl-practical-extraction-and-report-language/mirror-default-pentru-cpan/' rel="nofollow">Mai departe &raquo;</a></p>Desi jonglarea cu mirrorurile e o chestie frecventa in diferite aplicatii, CPAN nu ofera o metoda standard de setare a ordinii mirrorurilor dupa configurare. Daca tineti minte, la prima instalare CPAN se cer cateva detalii legate de modul in care va functiona, printre care si mirrorurile preferate si ordinea acestora.

Daca din neatentie nu selectam mirrorurile]]></description>
		<wfw:commentRss>http://www.lamp.ro/perl-practical-extraction-and-report-language/mirror-default-pentru-cpan/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
			<coop:keyword><![CDATA[Perl]]></coop:keyword>
		<coop:keyword><![CDATA[CPAN]]></coop:keyword>
	</item>
		<item>
		<title>Preluarea listei de linkuri dintr-o pagina web</title>
		<link>http://www.lamp.ro/perl-practical-extraction-and-report-language/preluarea-listei-de-linkuri-dintr-o-pagina-web/</link>
		<comments>http://www.lamp.ro/perl-practical-extraction-and-report-language/preluarea-listei-de-linkuri-dintr-o-pagina-web/#comments</comments>
		<pubDate>Thu, 18 Jun 2009 22:52:55 +0000</pubDate>
		<dc:creator>Sergiu Tot</dc:creator>
				<category><![CDATA[Perl]]></category>
		<category><![CDATA[Link]]></category>
		<category><![CDATA[Pagini web]]></category>

		<guid isPermaLink="false">http://www.lamp.ro/?p=142</guid>
		<description><![CDATA[<p>Cum Perl a fost conceput pentru prelucrarea si extragerea de informatii din texte, nu e de mirare ca detine metode simple pentru taskuri care in alte limbaje consuma cateva zeci de linii de cod. Unul din taskurile utile oferite de Perl este citirea automata a linkurilor dintr-o pagina web, treaba care se poate face foarte usor folosind libraria WWW::Mechanize.
16ed9d60564274b79d2ecaef570b987c004
Dupa cum se poate observa in codul de mai sus, in mai putin de 10 linii am extras toate linkurile dintr-o pagina web si le-am prelucrat &#8211; in cazul nostru, le-am afisat pe ecran. De aici pana la crearea unui crawler sau la un sistem de monitorizare a unei liste de linkuri nu mai e cale lunga, decat de cateva linii de cod si putina imaginatie.
... <a href='http://www.lamp.ro/perl-practical-extraction-and-report-language/preluarea-listei-de-linkuri-dintr-o-pagina-web/' rel="nofollow">Mai departe &raquo;</a></p>Cum Perl a fost conceput pentru prelucrarea si extragerea de informatii din texte, nu e de mirare ca detine metode simple pentru taskuri care in alte limbaje consuma cateva zeci de linii de cod. Unul din taskurile utile oferite de Perl este citirea automata a linkurilor dintr-o pagina web, treaba care se poate face foarte]]></description>
		<wfw:commentRss>http://www.lamp.ro/perl-practical-extraction-and-report-language/preluarea-listei-de-linkuri-dintr-o-pagina-web/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
			<coop:keyword><![CDATA[Perl]]></coop:keyword>
		<coop:keyword><![CDATA[Link]]></coop:keyword>
		<coop:keyword><![CDATA[Pagini web]]></coop:keyword>
	</item>
		<item>
		<title>Instalarea unui modul Perl</title>
		<link>http://www.lamp.ro/perl-practical-extraction-and-report-language/instalarea-unui-modul-perl/</link>
		<comments>http://www.lamp.ro/perl-practical-extraction-and-report-language/instalarea-unui-modul-perl/#comments</comments>
		<pubDate>Fri, 24 Apr 2009 17:33:03 +0000</pubDate>
		<dc:creator>Sergiu Tot</dc:creator>
				<category><![CDATA[Perl]]></category>

		<guid isPermaLink="false">http://www.lamp.ro/?p=78</guid>
		<description><![CDATA[<p>Daca serverul are cPanel/WHM instalat se alege optiunea Install a Perl Module din sectiunea “Software” in WHM. In pagina care se deschise se introduce numele modulului (ex. Net::Telnet) iar apoi click pe “Search”. Modulele gasite, care corespund numelui introdus, vor fi listate. Printr-un click pe modulul dorit acesta se instaleaza.
Daca serverul nu are cPanel/WHM instalat e nevoie de acces ca superuser la consola sau prin ssh. Ca root se ruleaza comanda:
16ed9d60564274b79d2ecaef570b987c005
Bineinteles, in loc de HTML::Template se trece numele corect al modulului dorit.
... <a href='http://www.lamp.ro/perl-practical-extraction-and-report-language/instalarea-unui-modul-perl/' rel="nofollow">Mai departe &raquo;</a></p>Daca serverul are cPanel/WHM instalat se alege optiunea Install a Perl Module din sectiunea “Software” in WHM. In pagina care se deschise se introduce numele modulului (ex. Net::Telnet) iar apoi click pe “Search”. Modulele gasite, care corespund numelui introdus, vor fi listate. Printr-un click pe modulul dorit acesta se instaleaza.

Daca serverul nu are cPanel/WHM instalat]]></description>
		<wfw:commentRss>http://www.lamp.ro/perl-practical-extraction-and-report-language/instalarea-unui-modul-perl/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
			<coop:keyword><![CDATA[Perl]]></coop:keyword>
	</item>
		<item>
		<title>Cum accesam serverul MySQL din Perl</title>
		<link>http://www.lamp.ro/perl-practical-extraction-and-report-language/cum-accesam-serverul-mysql-din-perl/</link>
		<comments>http://www.lamp.ro/perl-practical-extraction-and-report-language/cum-accesam-serverul-mysql-din-perl/#comments</comments>
		<pubDate>Fri, 24 Apr 2009 17:01:35 +0000</pubDate>
		<dc:creator>Sergiu Tot</dc:creator>
				<category><![CDATA[Perl]]></category>
		<category><![CDATA[MySQL]]></category>

		<guid isPermaLink="false">http://www.lamp.ro/?p=66</guid>
		<description><![CDATA[<p>DBI este o interfata generala folosita pentru accesarea mai multor servere de baze de date. Asta inseamna ca o aplicatie poate fi folosita pe mai multe tipuri de servere de baze de date fara schimbari majore. Este necesar un DBD (DataBase Driver) definit pentru fiecare tip de baza de date &#8211; pentru MySQL exista un modul numit DBD::mysql. Folosind modulul DBD::mysql ne putem conecta din Perl la o baza de date folosind modulul DBI. Un exemplu de utilizare se gaseste mai jos:
16ed9d60564274b79d2ecaef570b987c006
Bineinteles, pentru a functiona trebuie inlocuit database cu numele unei baze de date existente, utilizator cu numele de utilizator, parola cu parola utilizatorului si localhost, daca e cazul, cu adresa serverului remote.
... <a href='http://www.lamp.ro/perl-practical-extraction-and-report-language/cum-accesam-serverul-mysql-din-perl/' rel="nofollow">Mai departe &raquo;</a></p>DBI este o interfata generala folosita pentru accesarea mai multor servere de baze de date. Asta inseamna ca o aplicatie poate fi folosita pe mai multe tipuri de servere de baze de date fara schimbari majore. Este necesar un DBD (DataBase Driver) definit pentru fiecare tip de baza de date - pentru MySQL exista un]]></description>
		<wfw:commentRss>http://www.lamp.ro/perl-practical-extraction-and-report-language/cum-accesam-serverul-mysql-din-perl/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
			<coop:keyword><![CDATA[Perl]]></coop:keyword>
		<coop:keyword><![CDATA[MySQL]]></coop:keyword>
	</item>
		<item>
		<title>Cum stergem fisierele vechi in Perl</title>
		<link>http://www.lamp.ro/perl-practical-extraction-and-report-language/cum-stergem-fisierele-vechi-in-perl/</link>
		<comments>http://www.lamp.ro/perl-practical-extraction-and-report-language/cum-stergem-fisierele-vechi-in-perl/#comments</comments>
		<pubDate>Fri, 24 Apr 2009 15:02:54 +0000</pubDate>
		<dc:creator>Sergiu Tot</dc:creator>
				<category><![CDATA[Perl]]></category>

		<guid isPermaLink="false">http://www.lamp.ro/?p=36</guid>
		<description><![CDATA[<p>Ocazional avem nevoie ca in cadrul unui script Perl sa cautam fisiere vechi. Un exemplu practic de aplicatie rulata in cron pentru a curata directorul /tmp de fisiere nefolosite ale utilizatorilor.
16ed9d60564274b79d2ecaef570b987c007
Bineinteles, scriptul trebuie rulat ca root. Daca dorim fisiere mai vechi de o zi, modificam valoarea constantei MAX_DAYS sau setam variabila $max cu valoarea in secunde a perioadei limita.
... <a href='http://www.lamp.ro/perl-practical-extraction-and-report-language/cum-stergem-fisierele-vechi-in-perl/' rel="nofollow">Mai departe &raquo;</a></p>Ocazional avem nevoie ca in cadrul unui script Perl sa cautam fisiere vechi. Un exemplu practic de aplicatie rulata in cron pentru a curata directorul /tmp de fisiere nefolosite ale utilizatorilor.

#!/usr/bin/perl

use define MAX_DAYS => 1;

chdir("/tmp") or die("Utilizatorul curent nu are drept de executie pe /tmpn");
opendir(TMP,"/tmp") or die("Utilizatorul curent nu are drept de citire pe directorul]]></description>
		<wfw:commentRss>http://www.lamp.ro/perl-practical-extraction-and-report-language/cum-stergem-fisierele-vechi-in-perl/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
			<coop:keyword><![CDATA[Perl]]></coop:keyword>
	</item>
	</channel>
</rss>

