<?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:georss="http://www.georss.org/georss" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:media="http://search.yahoo.com/mrss/"
	>

<channel>
	<title>Iniciando em Perl</title>
	<atom:link href="http://iniciandoemperl.wordpress.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://iniciandoemperl.wordpress.com</link>
	<description>Porque todo castigo pra programador é pouco!</description>
	<lastBuildDate>Mon, 26 Jan 2009 21:21:20 +0000</lastBuildDate>
	<language>pt-br</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.com/</generator>
<cloud domain='iniciandoemperl.wordpress.com' port='80' path='/?rsscloud=notify' registerProcedure='' protocol='http-post' />
<image>
		<url>http://s2.wp.com/i/buttonw-com.png</url>
		<title>Iniciando em Perl</title>
		<link>http://iniciandoemperl.wordpress.com</link>
	</image>
	<atom:link rel="search" type="application/opensearchdescription+xml" href="http://iniciandoemperl.wordpress.com/osd.xml" title="Iniciando em Perl" />
	<atom:link rel='hub' href='http://iniciandoemperl.wordpress.com/?pushpress=hub'/>
		<item>
		<title>Depuração de scripts Perl</title>
		<link>http://iniciandoemperl.wordpress.com/2009/01/26/depuracao-de-scripts-perl/</link>
		<comments>http://iniciandoemperl.wordpress.com/2009/01/26/depuracao-de-scripts-perl/#comments</comments>
		<pubDate>Mon, 26 Jan 2009 21:21:20 +0000</pubDate>
		<dc:creator>Lawrence</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://iniciandoemperl.wordpress.com/?p=209</guid>
		<description><![CDATA[Sabe-se que em Perl os warnings nem sempre são esclarecedores. Ao contrário, o que era fácil, fica críptico. Pegando leve, vamos ver um exemplo: use strict; use warnings; my %hash = { cachorro =&#62; 'mamífero', golfinho =&#62; 'mamífero', tartaruga =&#62; 'réptil', galinha =&#62; 'galináceo' } E é claro que isso vai dar um erro grotesco: [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=iniciandoemperl.wordpress.com&amp;blog=5432101&amp;post=209&amp;subd=iniciandoemperl&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Sabe-se que em Perl os warnings nem sempre são esclarecedores. Ao contrário, o que era fácil, fica críptico.</p>
<p>Pegando leve, vamos ver um exemplo:</p>
<pre>use strict;
use warnings;
my %hash = {
  cachorro =&gt; 'mamífero',
  golfinho =&gt; 'mamífero',
  tartaruga =&gt; 'réptil',
  galinha =&gt; 'galináceo'
}</pre>
<p>E é claro que isso vai dar um erro grotesco:</p>
<pre>Reference found where even-sized list expected at hasht.pl line 5.  <em>(WTF!??)</em></pre>
<p>Pra resolver a questão de vez, adicione o pacote diagnostics, ficando assim:</p>
<pre>use warnings;
use strict;
use diagnostics;
my %hash = {
  cachorro =&gt; 'mamífero',
  golfinho =&gt; 'mamífero',
  tartaruga =&gt; 'réptil',
  galinha =&gt; 'galináceo'
}</pre>
<p>Magicamente, o Perl praticamente nos dá uma aula junto com o erro:</p>
<pre>Reference found where even-sized list expected at hasht.pl line 5 (#1)
(W misc) You gave a single reference where Perl was expecting a list
with an even number of elements (for assignment to a hash). This
usually means that you used the anon hash constructor when you meant
to use parens. In any case, a hash requires key/value pairs.

%hash = { one =&gt; 1, two =&gt; 2, };        # WRONG
%hash = [ qw/ an anon array / ];        # WRONG
%hash = ( one =&gt; 1, two =&gt; 2, );        # right
%hash = qw( one 1 two 2 );              # also fine</pre>
<p>Ou seja, era só trocar as chaves por parênteses. Agora ficou mole, ou pelo menos bem mais fácil de entender as mensagens esquisitas dessa linguagem fabulosa!</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/iniciandoemperl.wordpress.com/209/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/iniciandoemperl.wordpress.com/209/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/iniciandoemperl.wordpress.com/209/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/iniciandoemperl.wordpress.com/209/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/iniciandoemperl.wordpress.com/209/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/iniciandoemperl.wordpress.com/209/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/iniciandoemperl.wordpress.com/209/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/iniciandoemperl.wordpress.com/209/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/iniciandoemperl.wordpress.com/209/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/iniciandoemperl.wordpress.com/209/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/iniciandoemperl.wordpress.com/209/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/iniciandoemperl.wordpress.com/209/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/iniciandoemperl.wordpress.com/209/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/iniciandoemperl.wordpress.com/209/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=iniciandoemperl.wordpress.com&amp;blog=5432101&amp;post=209&amp;subd=iniciandoemperl&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://iniciandoemperl.wordpress.com/2009/01/26/depuracao-de-scripts-perl/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/b8b6b794629f989d04758cfd29d92318?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Lawrence</media:title>
		</media:content>
	</item>
		<item>
		<title>Array, Hash, Referência de Array, Referência de Hash</title>
		<link>http://iniciandoemperl.wordpress.com/2009/01/21/array-hash-referencia-de-array-referencia-de-hash/</link>
		<comments>http://iniciandoemperl.wordpress.com/2009/01/21/array-hash-referencia-de-array-referencia-de-hash/#comments</comments>
		<pubDate>Wed, 21 Jan 2009 17:54:16 +0000</pubDate>
		<dc:creator>Lawrence</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://iniciandoemperl.wordpress.com/?p=198</guid>
		<description><![CDATA[Serei breve. Resumão de como e quando acessar array, hash, referência de array e referência de hash. Um array é criado ao utilizar o arroba: @array = ( &#8216;um&#8217;, &#8216;dois&#8217;, &#8216;tres&#8217; ); Um hash é criado ao utilizar a porcentagem: %hash = ( &#8216;nome&#8217; =&#62; &#8216;Kate&#8217; , &#8216;idade&#8217; =&#62; &#8217;26&#8242; ); Observe que ambos são [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=iniciandoemperl.wordpress.com&amp;blog=5432101&amp;post=198&amp;subd=iniciandoemperl&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Serei breve. Resumão de como e quando acessar array, hash, referência de array e referência de hash.</p>
<p><img src="http://iniciandoemperl.files.wordpress.com/2009/01/pai_mei.jpg?w=380&#038;h=215" alt="pai_mei" title="pai_mei" width="380" height="215" class="alignnone size-full wp-image-201" /><br />
<span id="more-198"></span></p>
<p>Um array é criado ao utilizar o arroba:<br />
<strong>@array = ( &#8216;um&#8217;, &#8216;dois&#8217;, &#8216;tres&#8217; );</strong></p>
<p>Um hash é criado ao utilizar a porcentagem:<br />
<strong>%hash = ( &#8216;nome&#8217; =&gt; &#8216;Kate&#8217; , &#8216;idade&#8217; =&gt; &#8217;26&#8242; );</strong></p>
<p>Observe que ambos são definidos entre parênteses. A diferença fica no contexto.</p>
<p>Para acessar o conteúdo de um dos dois, utiliza-se o contexto scalar (utilizando a variável com cifrão).</p>
<p>Para acessar itens de um array, o índice é passado entre [colchetes]:<br />
<strong>print $array[2];</strong></p>
<p>Para acessar o conteúdo de um hash, o índice é passado entre {chaves}:<br />
<strong>print $hash{nome};</strong></p>
<p>Você define o array com @arroba e o hash com %porcentagem, mas ao acessar, o $cifrão deve ser utilizado.</p>
<p>As referências são diferentes.</p>
<p>Referência de array é um scalar que aponta para um array. Uma ferência de array é definida entre colchetes:<br />
<strong>$arrayref = [ 'um' , 'dois', 'tres' ];</strong></p>
<p>Referência de hash também é um scalar que aponta para um hash, definido entre chaves:<br />
<strong>$hashref = { &#8216;nome&#8217; =&gt; &#8216;Kate&#8217;, &#8216;idade&#8217; =&gt; 26 };</strong></p>
<p>Para acessar os valores, você utiliza sempre -&gt;, seguido de colchetes para array ou chaves para hash:<br />
<strong>$arrayref-&gt;[2];</strong><br />
<strong>$hashref-&gt;{nome};</strong></p>
<h2>Basta lembrar:</h2>
<p>@ é array<br />
% é hash<br />
( ) ao definir utilizando @ ou %<br />
$ sempre para acessar<br />
[ ] é referência de array<br />
{ } é referência de hash<br />
ao acessar referências, sempre use -&gt; antes de [] ou {}</p>
<p>Super simples <img src='http://s0.wp.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/iniciandoemperl.wordpress.com/198/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/iniciandoemperl.wordpress.com/198/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/iniciandoemperl.wordpress.com/198/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/iniciandoemperl.wordpress.com/198/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/iniciandoemperl.wordpress.com/198/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/iniciandoemperl.wordpress.com/198/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/iniciandoemperl.wordpress.com/198/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/iniciandoemperl.wordpress.com/198/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/iniciandoemperl.wordpress.com/198/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/iniciandoemperl.wordpress.com/198/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/iniciandoemperl.wordpress.com/198/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/iniciandoemperl.wordpress.com/198/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/iniciandoemperl.wordpress.com/198/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/iniciandoemperl.wordpress.com/198/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=iniciandoemperl.wordpress.com&amp;blog=5432101&amp;post=198&amp;subd=iniciandoemperl&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://iniciandoemperl.wordpress.com/2009/01/21/array-hash-referencia-de-array-referencia-de-hash/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/b8b6b794629f989d04758cfd29d92318?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Lawrence</media:title>
		</media:content>

		<media:content url="http://iniciandoemperl.files.wordpress.com/2009/01/pai_mei.jpg" medium="image">
			<media:title type="html">pai_mei</media:title>
		</media:content>
	</item>
		<item>
		<title>Trandução da documentação Perl para Português</title>
		<link>http://iniciandoemperl.wordpress.com/2009/01/14/tranducao-da-documentacao-perl-para-portugues/</link>
		<comments>http://iniciandoemperl.wordpress.com/2009/01/14/tranducao-da-documentacao-perl-para-portugues/#comments</comments>
		<pubDate>Wed, 14 Jan 2009 14:17:14 +0000</pubDate>
		<dc:creator>dyegoreisa</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://iniciandoemperl.wordpress.com/?p=192</guid>
		<description><![CDATA[No site oficial do Perl Brasil existe um projeto de tradução da documentação do Perl para o português. Quem puder contribuir&#8230; Fará com que o Perl se torne mais acessível no Brasil. segue o link: http://www.perl.org.br/Perldoc/WebTranslation<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=iniciandoemperl.wordpress.com&amp;blog=5432101&amp;post=192&amp;subd=iniciandoemperl&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>No site oficial do Perl Brasil existe um projeto de tradução da documentação do Perl para o português.</p>
<p>Quem puder contribuir&#8230;<br />
Fará com que o Perl se torne mais acessível no Brasil.</p>
<p>segue o link: <a href="http://www.perl.org.br/Perldoc/WebTranslation" target="_blank">http://www.perl.org.br/Perldoc/WebTranslation</a></p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/iniciandoemperl.wordpress.com/192/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/iniciandoemperl.wordpress.com/192/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/iniciandoemperl.wordpress.com/192/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/iniciandoemperl.wordpress.com/192/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/iniciandoemperl.wordpress.com/192/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/iniciandoemperl.wordpress.com/192/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/iniciandoemperl.wordpress.com/192/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/iniciandoemperl.wordpress.com/192/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/iniciandoemperl.wordpress.com/192/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/iniciandoemperl.wordpress.com/192/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/iniciandoemperl.wordpress.com/192/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/iniciandoemperl.wordpress.com/192/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/iniciandoemperl.wordpress.com/192/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/iniciandoemperl.wordpress.com/192/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=iniciandoemperl.wordpress.com&amp;blog=5432101&amp;post=192&amp;subd=iniciandoemperl&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://iniciandoemperl.wordpress.com/2009/01/14/tranducao-da-documentacao-perl-para-portugues/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/47fbf8a92a237c006a82e8b63fd155b5?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">dyegoreisa</media:title>
		</media:content>
	</item>
		<item>
		<title>Calendários do Advento Natalino</title>
		<link>http://iniciandoemperl.wordpress.com/2008/12/04/calendarios-do-advento-natalino/</link>
		<comments>http://iniciandoemperl.wordpress.com/2008/12/04/calendarios-do-advento-natalino/#comments</comments>
		<pubDate>Thu, 04 Dec 2008 11:16:42 +0000</pubDate>
		<dc:creator>Lawrence</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://iniciandoemperl.wordpress.com/?p=190</guid>
		<description><![CDATA[Replico aqui um post interessante do Breno na lista de Perl do Rio de Janeiro sobre recomendações de módulos de no mês de dezembro. Acompanhem! http://perladvent.pm.org/2008/ &#8212;&#8212;&#8212;- Forwarded message &#8212;&#8212;&#8212;- From: breno Date: 2008/12/4 Subject: [Rio-pm] Calendários do Advento Natalino! To: Perl Mongers Rio de Janeiro O calendário Perl do advento natalino é uma tradição [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=iniciandoemperl.wordpress.com&amp;blog=5432101&amp;post=190&amp;subd=iniciandoemperl&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Replico aqui um post interessante do Breno na lista de Perl do Rio de Janeiro sobre recomendações de módulos de no mês de dezembro.</p>
<p>Acompanhem!<br />
<a href="http://perladvent.pm.org/2008/">http://perladvent.pm.org/2008/</a></p>
<blockquote><p>&#8212;&#8212;&#8212;- Forwarded message &#8212;&#8212;&#8212;-<br />
From: breno<br />
Date: 2008/12/4<br />
Subject: [Rio-pm] Calendários do Advento Natalino!<br />
To: Perl Mongers Rio de Janeiro </p>
<p>O calendário Perl do advento natalino é uma tradição na comunidade desde o ano 2000. A idéia é apresentar um módulo bacana (para qualquer definição de &#8220;bacana&#8221;) do CPAN em cada dia de dezembro que antecede o Natal.</p>
<p>O desse ano já está no ar!</p>
<p><a href="http://perladvent.pm.org/2008/">http://perladvent.pm.org/2008/</a></p>
<p>O dia 1 fala do ToolSet, um módulo que agrega todos os seus módulos mais usados em um único import, evitando assim o &#8220;ctrl-c/ctrl-v&#8221;.</p>
<p>Dia 2 fala de um módulo que eu particularmente acho o maior barato, o Math::Prime::TiedArray, que cria um array virtual com todos os números primos.Todos?! Todos. Afinal, é um array virtual, ele computa o número primo que ocupa a posição desejada conforme a demanda <img src='http://s1.wp.com/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' /> </p>
<p>Fiquem atentos ao site oficial do calendário! Quem tiver curiosidade é só olhar o histórico para os outros anos, e se vc acha que seu [insira módulo xodó aqui] está sendo injustiçado por não ter sido apresentado<br />
até hoje, escreva para eles! O pessoal do calendário está sempre atrás de idéias (e escritores!!!!!)</p>
<p>Finalmente, mas não menos importante, já saiu também o calendário Catalyst do advento natalino, que desde 2005 complementa o calendário do Perl com dicas e módulos específicos para o Catalyst!</p>
<p><a href="http://www.catalystframework.org/calendar/2008/">http://www.catalystframework.org/calendar/2008/</a></p>
<p>O dia 1 apresenta as estatísticas da pesquisa de Catalyst (que circulou inclusive pela lista, infelizmente apenas 2 brasileiros responderam).</p>
<p>Dia 2 mostra as diferentes formas de se implantar o Catalyst em servidores Web (servidor built-in, mod_perl, fastcgi, etc)</p>
<p>O dia 3 apresenta um módulo bonitão que já mencionei por aqui, o Chart::Clicker, e como usá-lo junto com o Catalyst para exibir páginas com gráficos informativos.</p>
<p>Como sempre, é possível ver calendários de anos anteriores, e eles também adoram voluntários!</p>
<p>[]s, e boas festas <img src='http://s1.wp.com/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' /> </p>
<p>-b<br />
_______________________________________________<br />
Rio-pm mailing list<br />
Rio-pm@pm.org<br />
<a href="http://mail.pm.org/mailman/listinfo/rio-pm">http://mail.pm.org/mailman/listinfo/rio-pm</a></p></blockquote>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/iniciandoemperl.wordpress.com/190/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/iniciandoemperl.wordpress.com/190/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/iniciandoemperl.wordpress.com/190/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/iniciandoemperl.wordpress.com/190/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/iniciandoemperl.wordpress.com/190/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/iniciandoemperl.wordpress.com/190/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/iniciandoemperl.wordpress.com/190/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/iniciandoemperl.wordpress.com/190/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/iniciandoemperl.wordpress.com/190/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/iniciandoemperl.wordpress.com/190/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/iniciandoemperl.wordpress.com/190/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/iniciandoemperl.wordpress.com/190/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/iniciandoemperl.wordpress.com/190/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/iniciandoemperl.wordpress.com/190/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=iniciandoemperl.wordpress.com&amp;blog=5432101&amp;post=190&amp;subd=iniciandoemperl&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://iniciandoemperl.wordpress.com/2008/12/04/calendarios-do-advento-natalino/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/b8b6b794629f989d04758cfd29d92318?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Lawrence</media:title>
		</media:content>
	</item>
		<item>
		<title>Template Toolkit no Perl</title>
		<link>http://iniciandoemperl.wordpress.com/2008/12/03/template-toolkit-perl/</link>
		<comments>http://iniciandoemperl.wordpress.com/2008/12/03/template-toolkit-perl/#comments</comments>
		<pubDate>Wed, 03 Dec 2008 11:00:55 +0000</pubDate>
		<dc:creator>Lawrence</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://iniciandoemperl.wordpress.com/?p=164</guid>
		<description><![CDATA[Acho que uma das poucas coisas que gosto no Perl é o módulo Template Toolkit. Como a documentação é boa, vou só dar uma olhada superficial. Comecemos pela instalação: # aptitude install libtemplate-perl O uso é semelhante a qualquer biblioteca de templates, como o Smarty no PHP. Preparamos as variáveis que serão disponibilizadas e em [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=iniciandoemperl.wordpress.com&amp;blog=5432101&amp;post=164&amp;subd=iniciandoemperl&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Acho que uma das <del>poucas</del> coisas que gosto no Perl é o módulo Template Toolkit. Como a documentação é boa, vou só dar uma olhada superficial.</p>
<p>Comecemos pela instalação:</p>
<div style="background-color:#333;color:#fff;padding:.5em;"><span style="color:#f00;">#</span> aptitude install libtemplate-perl</div>
<p>O uso é semelhante a qualquer biblioteca de templates, como o Smarty no PHP. Preparamos as variáveis que serão disponibilizadas e em seguida processamos determinado arquivo.</p>
<p>O script fica assim:</p>
<div style="font-family:monospace,'Bitstream Vera Sans Mono','Courier New';background-color:#fff;color:#000;border-left:3px solid #ccc;padding:.5em;"><span style="color:#a52a2a;">use strict</span>;<br />
<span style="color:#a52a2a;">use warnings</span>;<br />
&nbsp;<br />
<span style="color:#a52a2a;">use </span>Template;<br />
<span style="color:#a52a2a;">use </span>File::Basename;<br />
&nbsp;<br />
<span style="color:#a52a2a;">my</span>&nbsp;<span style="color:#008b8b;">$r</span>&nbsp;= <span style="color:#a52a2a;">shift</span>;<br />
<span style="color:#008b8b;">$r</span>-&gt;content_type(<span style="color:#ff00ff;">&quot;</span><span style="color:#ff00ff;">text/html</span><span style="color:#ff00ff;">&quot;</span>);<br />
&nbsp;<br />
<span style="color:#a52a2a;">my</span>&nbsp;<span style="color:#008b8b;">$directory</span>&nbsp;= (fileparse <span style="color:#008b8b;">$r</span>-&gt;filename)[<span style="color:#ff00ff;">1</span>];<br />
&nbsp;<br />
<span style="color:#a52a2a;">my</span>&nbsp;<span style="color:#008b8b;">$template</span>&nbsp;= Template-&gt;<span style="color:#a52a2a;">new</span>({<br />
&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:#ff00ff;">INCLUDE_PATH </span>=&gt; <span style="color:#ff00ff;">&quot;</span><span style="color:#008b8b;">$directory</span><span style="color:#ff00ff;">/templates</span><span style="color:#ff00ff;">&quot;</span>,<br />
});<br />
&nbsp;<br />
<span style="color:#a52a2a;">my</span>&nbsp;<span style="color:#008b8b;">$vars</span>&nbsp;= {<br />
&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:#ff00ff;">artista </span>=&gt; <span style="color:#ff00ff;">&#39;</span><span style="color:#ff00ff;">Pink Floyd</span><span style="color:#ff00ff;">&#39;</span>,<br />
&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:#ff00ff;">album&nbsp;&nbsp; </span>=&gt; <span style="color:#ff00ff;">&#39;</span><span style="color:#ff00ff;">Pulse</span><span style="color:#ff00ff;">&#39;</span>,<br />
&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:#ff00ff;">musicas </span>=&gt; [<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{ <span style="color:#ff00ff;">numero </span>=&gt; <span style="color:#ff00ff;">12</span>, <span style="color:#ff00ff;">titulo </span>=&gt; <span style="color:#ff00ff;">&#39;</span><span style="color:#ff00ff;">Comfortably Numb</span><span style="color:#ff00ff;">&#39;</span>&nbsp;},<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{ <span style="color:#ff00ff;">numero </span>=&gt; <span style="color:#ff00ff;">11</span>, <span style="color:#ff00ff;">titulo </span>=&gt; <span style="color:#ff00ff;">&#39;</span><span style="color:#ff00ff;">Wish You Were Here</span><span style="color:#ff00ff;">&#39;</span>&nbsp;},<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{ <span style="color:#ff00ff;">numero </span>=&gt; <span style="color:#ff00ff;">3</span>,&nbsp;&nbsp;<span style="color:#ff00ff;">titulo </span>=&gt; <span style="color:#ff00ff;">&#39;</span><span style="color:#ff00ff;">Time</span><span style="color:#ff00ff;">&#39;</span>&nbsp;},<br />
&nbsp;&nbsp;&nbsp;&nbsp;],<br />
};<br />
&nbsp;<br />
<span style="color:#008b8b;">$template</span>-&gt;process(<span style="color:#ff00ff;">&#39;</span><span style="color:#ff00ff;">musica.tt2</span><span style="color:#ff00ff;">&#39;</span>, <span style="color:#008b8b;">$vars</span>)<br />
&nbsp;&nbsp;&nbsp;&nbsp;|| <span style="color:#a52a2a;">die</span>&nbsp;<span style="color:#008b8b;">$template</span>-&gt;error();</div>
<p>E o template:</p>
<div style="background-color:#fff;color:#000;border-left:3px solid #ccc;padding:.5em;">&lt;html&gt;<br />
&lt;body&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&lt;h1&gt;[% artista %]&lt;/h1&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&lt;h2&gt;[% album %]&lt;/h2&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;[% IF musicas %]<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;ul&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[% FOREACH musica IN musicas %]<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;li&gt;[% musica.numero %] &#8211; [% musica.titulo %]&lt;/li&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[% END %]<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/ul&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;[% ELSE %]<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;p&gt;Nenhuma música.&lt;/p&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;[% END %]<br />
&lt;/body&gt;<br />
&lt;/html&gt;</div>
<p>Quem já está acostumado a utilizar templates vai precisar apenas se adaptar à sintaxe do Template Toolkit.</p>
<p>Em relação ao script, o trecho <span style="background-color:#eaeaea;"><span style="color:#a52a2a;">my</span>&nbsp;<span style="color:#008b8b;">$directory</span>&nbsp;= (fileparse <span style="color:#008b8b;">$r</span>-&gt;filename)[<span style="color:#ff00ff;">1</span>];</span> é uma peculiaridade do <em>mod_perl</em>. O diretório atual do processo <strong>não é</strong> o diretório do script, aqui ficou como sendo a raiz do sistema. Então se tentássemos carregar o template <em>templates/musica.tt2</em> ele não encontraria o arquivo.</p>
<p>A função <em>fileparse</em> do módulo <em>File::Basename</em> retorna uma lista com o nome do arquivo, diretório e sufixo, respectivamente. Da forma como foi utilizada, o diretório do arquivo que está sendo processado é atribuído à variável <em>$directory</em>. Essa variável então é utilizada como base para o caminho absoluto do diretório dos templates que é passado como configuração para o Template Toolkit.</p>
<p>Também é importante verificar se o template foi processado corretamente. Se não houvesse a linha <span style="background-color:#eaeaea;">|| die $template-&gt;error();</span> e o processamento do template desse erro, a função <em>process</em> apenas retornaria 0, sem mostrar nada na tela. Utilizando o <em>die</em> como demonstrado, qualquer problema vai mostrar <em>Internal Server Error</em> no browser e detalhes do erro no <em>error.log</em> do Apache.</p>
<h3>Recomendo a leitura</h3>
<ul>
<li><a href="http://template-toolkit.org/docs/manual/Syntax.html">Syntax</a></li>
<li><a href="http://template-toolkit.org/docs/manual/Config.html#section_PRE_PROCESS_POST_PROCESS">Directives: PRE_PROCESS, POST_PROCESS</a></li>
<li><a href="http://template-toolkit.org/docs/manual/Filters.html#section_html">Filters: html</a></li>
<li><a href="http://template-toolkit.org/docs/manual/Views.html">Views</a></li>
</ul>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/iniciandoemperl.wordpress.com/164/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/iniciandoemperl.wordpress.com/164/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/iniciandoemperl.wordpress.com/164/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/iniciandoemperl.wordpress.com/164/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/iniciandoemperl.wordpress.com/164/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/iniciandoemperl.wordpress.com/164/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/iniciandoemperl.wordpress.com/164/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/iniciandoemperl.wordpress.com/164/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/iniciandoemperl.wordpress.com/164/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/iniciandoemperl.wordpress.com/164/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/iniciandoemperl.wordpress.com/164/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/iniciandoemperl.wordpress.com/164/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/iniciandoemperl.wordpress.com/164/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/iniciandoemperl.wordpress.com/164/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=iniciandoemperl.wordpress.com&amp;blog=5432101&amp;post=164&amp;subd=iniciandoemperl&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://iniciandoemperl.wordpress.com/2008/12/03/template-toolkit-perl/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/b8b6b794629f989d04758cfd29d92318?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Lawrence</media:title>
		</media:content>
	</item>
		<item>
		<title>Hashings de perl</title>
		<link>http://iniciandoemperl.wordpress.com/2008/12/01/hashings-de-perl/</link>
		<comments>http://iniciandoemperl.wordpress.com/2008/12/01/hashings-de-perl/#comments</comments>
		<pubDate>Tue, 02 Dec 2008 00:32:12 +0000</pubDate>
		<dc:creator>dyegoreisa</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[hash]]></category>

		<guid isPermaLink="false">http://iniciandoemperl.wordpress.com/?p=181</guid>
		<description><![CDATA[São os array associativos. As variáveis hashings são precedidas de %. %idade = ();  # Cria uma hashing vazio. %idade = ('jabuti', 80, 'rato', 3, 'cobra', 6); # Outra maneira de fazer o mesmo acima. %idade = (tuatara =&#62; 35, cachorro =&#62; 12, harpia =&#62; 40); %idade{elefante} = 70; Usando o operador =&#62; não é [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=iniciandoemperl.wordpress.com&amp;blog=5432101&amp;post=181&amp;subd=iniciandoemperl&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>São os array associativos.<br />
As variáveis hashings são precedidas de %.</p>
<p><code style="display:block;background:#eaeaea;">%idade = ();  # Cria uma hashing vazio.<br />
%idade = ('jabuti', 80, 'rato', 3, 'cobra', 6);<br />
# Outra maneira de fazer o mesmo acima.<br />
%idade = (tuatara =&gt; 35, cachorro =&gt; 12, harpia =&gt; 40);<br />
%idade{elefante} = 70;</code></p>
<p>Usando o operador =&gt; não é necessário usar aspas, no item a direita</p>
<p>Para acessar os dados de um hashing devemos usar o { e } para indicar o índice e $ precedendo a variável.</p>
<p><code style="display:block;background:#eaeaea;">$idade_animal = $idade{jabuti};</code></p>
<p>Podemos acessar os índices dos hashings usando a função key.</p>
<p><code style="display:block;background:#eaeaea;"># @animais agora é ('harpia', 'tuatara', 'cobra', 'elefante', 'rato', 'cachorro', 'jabuti').<br />
@animais = keys %idade;</code></p>
<p>Há uma função parecida para os valores.</p>
<p><code style="display:block;background:#eaeaea;"># @tempo_vida agora é (40, 35, 6, 70, 3, 12, 80).<br />
@tempo_vida = values %idade;</code></p>
<p>Each retorna uma lista de dois elementos, contendo uma chave do hashing junto com o seu valor associado. Chamadas subsequentes  para each retornarão outro par de chave/valor até que todos os pares tenha sido retornados, nesse ponto, um array vazio será retornado.</p>
<p><code style="display:block;background:#eaeaea;">while ( ($nome, $vida) = each %idade) ) {<br />
print "$nome vive $vida anos\n";<br />
}</code></p>
<p>Para saber o tamanho de um hashing basta atribuir a um scalar usando a função keys.</p>
<p><code style="display:block;background:#eaeaea;"># o valor de $quantidade_animais é 3.<br />
$quantidade_animais = keys %idade;</code></p>
<p>Para acessar partes de um hashing usa se a sintaxe abaixo:</p>
<p><code style="display:block;background:#eaeaea;"># Mostra a idade da tartaruga.<br />
$mais_velho = {'tartaruga'};</code></p>
<p>Da mesma forma que é possível dar valores a um hashing, usando uma lista é possível usar a função map para tranformar uma lista num hashing. Por exemplo, o código a seguinte cria uma hashing em que a as chaves são números e os valores seus quadrados.</p>
<p><code style="display:block;background:#eaeaea;">%quadrado = map { $_ =&gt; ($_ * $_) } @numeros;</code></p>
<p>Segue abaixo um programa que mostra o funcionamento da variável hashing:</p>
<div style="background-color:#000000;color:#ffffff;">
<code><br />
<span style="color:#ffff00;">&nbsp;&nbsp;1 </span><span style="color:#8080ff;"><b>#!/usr/bin/perl</b></span><br />
<span style="color:#ffff00;">&nbsp;&nbsp;2 </span><br />
<span style="color:#ffff00;">&nbsp;&nbsp;3 </span><span style="color:#ffff00;"><b>use warnings</b></span>;<br />
<span style="color:#ffff00;">&nbsp;&nbsp;4 </span><span style="color:#ffff00;"><b>use strict</b></span>;<br />
<span style="color:#ffff00;">&nbsp;&nbsp;5 </span><br />
<span style="color:#ffff00;">&nbsp;&nbsp;6 </span><span style="color:#ffff00;"><b>my</b></span>&nbsp;<span style="color:#00ffff;"><b>%idade</b></span>;<br />
<span style="color:#ffff00;">&nbsp;&nbsp;7 </span><span style="color:#ffff00;"><b>my</b></span>&nbsp;<span style="color:#00ffff;"><b>$nome</b></span>;<br />
<span style="color:#ffff00;">&nbsp;&nbsp;8 </span><span style="color:#ffff00;"><b>my</b></span>&nbsp;<span style="color:#00ffff;"><b>$idade</b></span>;<br />
<span style="color:#ffff00;">&nbsp;&nbsp;9 </span><span style="color:#ffff00;"><b>my</b></span>&nbsp;<span style="color:#00ffff;"><b>$animal</b></span>;<br />
<span style="color:#ffff00;">&nbsp;10 </span><span style="color:#ffff00;"><b>my</b></span>&nbsp;<span style="color:#00ffff;"><b>@animais</b></span>;<br />
<span style="color:#ffff00;">&nbsp;11 </span><span style="color:#ffff00;"><b>my</b></span>&nbsp;<span style="color:#00ffff;"><b>$quantidade_animais</b></span>;<br />
<span style="color:#ffff00;">&nbsp;12 </span><span style="color:#ffff00;"><b>my</b></span>&nbsp;<span style="color:#00ffff;"><b>%mais_velho</b></span>;<br />
<span style="color:#ffff00;">&nbsp;13 </span><span style="color:#ffff00;"><b>my</b></span>&nbsp;<span style="color:#00ffff;"><b>@mais_velho</b></span>;<br />
<span style="color:#ffff00;">&nbsp;14 </span><span style="color:#ffff00;"><b>my</b></span>&nbsp;<span style="color:#00ffff;"><b>%quadrado</b></span>;<br />
<span style="color:#ffff00;">&nbsp;15 </span><span style="color:#ffff00;"><b>my</b></span>&nbsp;<span style="color:#00ffff;"><b>@numeros</b></span>;<br />
<span style="color:#ffff00;">&nbsp;16 </span><span style="color:#ffff00;"><b>my</b></span>&nbsp;<span style="color:#00ffff;"><b>$numero</b></span>;<br />
<span style="color:#ffff00;">&nbsp;17 </span><span style="color:#ffff00;"><b>my</b></span>&nbsp;<span style="color:#00ffff;"><b>$quadrado</b></span>;<br />
<span style="color:#ffff00;">&nbsp;18 </span><br />
<span style="color:#ffff00;">&nbsp;19 </span><span style="color:#cc6600;"><b># Cria uma hashing vazio</b></span><br />
<span style="color:#ffff00;">&nbsp;20 </span><span style="color:#ffff00;"><b>print</b></span>&nbsp;<span style="color:#00ffff;">&quot;</span><span style="color:#00ffff;">Hashing vazio:</span><span style="color:#ff6060;"><b>\n</b></span><span style="color:#00ffff;">&quot;</span>;<br />
<span style="color:#ffff00;">&nbsp;21 </span><span style="color:#00ffff;"><b>%idade</b></span>&nbsp;= ();<br />
<span style="color:#ffff00;">&nbsp;22 </span><span style="color:#ffff00;"><b>print</b></span>&nbsp;<span style="color:#00ffff;"><b>%idade</b></span>;<br />
<span style="color:#ffff00;">&nbsp;23 </span><br />
<span style="color:#ffff00;">&nbsp;24 </span><span style="color:#ffff00;"><b>print</b></span>&nbsp;<span style="color:#00ffff;">&quot;</span><span style="color:#ff6060;"><b>\n\n</b></span><span style="color:#00ffff;">&quot;</span>;<br />
<span style="color:#ffff00;">&nbsp;25 </span><br />
<span style="color:#ffff00;">&nbsp;26 </span><span style="color:#cc6600;"><b># Cria um hashing com a idade dos animais usando sintaxe de virgulas</b></span><br />
<span style="color:#ffff00;">&nbsp;27 </span><span style="color:#ffff00;"><b>print</b></span>&nbsp;<span style="color:#00ffff;">&quot;</span><span style="color:#00ffff;">Idade dos animais: </span><span style="color:#ff6060;"><b>\n</b></span><span style="color:#00ffff;">&quot;</span>;<br />
<span style="color:#ffff00;">&nbsp;28 </span><span style="color:#00ffff;"><b>%idade</b></span>&nbsp;= (<span style="color:#00ffff;">'</span><span style="color:#00ffff;">jabuti</span><span style="color:#00ffff;">'</span>, <span style="color:#ff40ff;"><b>80</b></span>, <span style="color:#00ffff;">'</span><span style="color:#00ffff;">rato</span><span style="color:#00ffff;">'</span>, <span style="color:#ff40ff;"><b>3</b></span>, <span style="color:#00ffff;">'</span><span style="color:#00ffff;">cobra</span><span style="color:#00ffff;">'</span>, <span style="color:#ff40ff;"><b>6</b></span>);<br />
<span style="color:#ffff00;">&nbsp;29 </span><span style="color:#ffff00;"><b>while</b></span>&nbsp;((<span style="color:#00ffff;"><b>$nome</b></span>, <span style="color:#00ffff;"><b>$idade</b></span>) = <span style="color:#ffff00;"><b>each</b></span>&nbsp;<span style="color:#00ffff;"><b>%idade</b></span>){<br />
<span style="color:#ffff00;">&nbsp;30 </span>&nbsp;&nbsp;<span style="color:#ffff00;"><b>print</b></span>&nbsp;<span style="color:#00ffff;">&quot;</span><span style="color:#00ffff;">-</span><span style="color:#00ffff;"><b>$nome</b></span><span style="color:#00ffff;">&nbsp;pode viver até os </span><span style="color:#00ffff;"><b>$idade</b></span><span style="color:#00ffff;">&nbsp;anos</span><span style="color:#ff6060;"><b>\n</b></span><span style="color:#00ffff;">&quot;</span>;<br />
<span style="color:#ffff00;">&nbsp;31 </span>}<br />
<span style="color:#ffff00;">&nbsp;32 </span><br />
<span style="color:#ffff00;">&nbsp;33 </span><span style="color:#ffff00;"><b>print</b></span>&nbsp;<span style="color:#00ffff;">&quot;</span><span style="color:#ff6060;"><b>\n\n</b></span><span style="color:#00ffff;">&quot;</span>;<br />
<span style="color:#ffff00;">&nbsp;34 </span><br />
<span style="color:#ffff00;">&nbsp;35 </span><span style="color:#cc6600;"><b># Adiciona mais itens ao hashing exitente usando a sintaxe de =&gt;</b></span><br />
<span style="color:#ffff00;">&nbsp;36 </span><span style="color:#ffff00;"><b>print</b></span>&nbsp;<span style="color:#00ffff;">&quot;</span><span style="color:#00ffff;">Idade dos animais: </span><span style="color:#ff6060;"><b>\n</b></span><span style="color:#00ffff;">&quot;</span>;<br />
<span style="color:#ffff00;">&nbsp;37 </span><span style="color:#00ffff;"><b>%idade</b></span>&nbsp;= (<span style="color:#00ffff;"><b>%idade</b></span>, (<span style="color:#00ffff;">tuatara </span>=&gt; <span style="color:#ff40ff;"><b>35</b></span>, <span style="color:#00ffff;">cachorro </span>=&gt; <span style="color:#ff40ff;"><b>12</b></span>, <span style="color:#00ffff;">harpia </span>=&gt; <span style="color:#ff40ff;"><b>40</b></span>));<br />
<span style="color:#ffff00;">&nbsp;38 </span><span style="color:#ffff00;"><b>while</b></span>&nbsp;((<span style="color:#00ffff;"><b>$nome</b></span>, <span style="color:#00ffff;"><b>$idade</b></span>) = <span style="color:#ffff00;"><b>each</b></span>&nbsp;<span style="color:#00ffff;"><b>%idade</b></span>){<br />
<span style="color:#ffff00;">&nbsp;39 </span>&nbsp;&nbsp;<span style="color:#ffff00;"><b>print</b></span>&nbsp;<span style="color:#00ffff;">&quot;</span><span style="color:#00ffff;">-</span><span style="color:#00ffff;"><b>$nome</b></span><span style="color:#00ffff;">&nbsp;pode viver até os </span><span style="color:#00ffff;"><b>$idade</b></span><span style="color:#00ffff;">&nbsp;anos </span><span style="color:#ff6060;"><b>\n</b></span><span style="color:#00ffff;">&quot;</span>;<br />
<span style="color:#ffff00;">&nbsp;40 </span>}<br />
<span style="color:#ffff00;">&nbsp;41 </span><br />
<span style="color:#ffff00;">&nbsp;42 </span><span style="color:#ffff00;"><b>print</b></span>&nbsp;<span style="color:#00ffff;">&quot;</span><span style="color:#ff6060;"><b>\n\n</b></span><span style="color:#00ffff;">&quot;</span>;<br />
<span style="color:#ffff00;">&nbsp;43 </span><br />
<span style="color:#ffff00;">&nbsp;44 </span><span style="color:#cc6600;"><b># Adiniciona item individualmente</b></span><br />
<span style="color:#ffff00;">&nbsp;45 </span><span style="color:#ffff00;"><b>print</b></span>&nbsp;<span style="color:#00ffff;">&quot;</span><span style="color:#00ffff;">Idade dos animais:</span><span style="color:#ff6060;"><b>\n</b></span><span style="color:#00ffff;">&quot;</span>;<br />
<span style="color:#ffff00;">&nbsp;46 </span><span style="color:#00ffff;"><b>$idade</b></span>{elefante} = <span style="color:#ff40ff;"><b>70</b></span>;<br />
<span style="color:#ffff00;">&nbsp;47 </span><span style="color:#ffff00;"><b>while</b></span>&nbsp;((<span style="color:#00ffff;"><b>$nome</b></span>, <span style="color:#00ffff;"><b>$idade</b></span>) = <span style="color:#ffff00;"><b>each</b></span>&nbsp;<span style="color:#00ffff;"><b>%idade</b></span>){<br />
<span style="color:#ffff00;">&nbsp;48 </span>&nbsp;&nbsp;<span style="color:#ffff00;"><b>print</b></span>&nbsp;<span style="color:#00ffff;">&quot;</span><span style="color:#00ffff;">-</span><span style="color:#00ffff;"><b>$nome</b></span><span style="color:#00ffff;">&nbsp;pode viver até os </span><span style="color:#00ffff;"><b>$idade</b></span><span style="color:#00ffff;">&nbsp;anos </span><span style="color:#ff6060;"><b>\n</b></span><span style="color:#00ffff;">&quot;</span>;<br />
<span style="color:#ffff00;">&nbsp;49 </span>}<br />
<span style="color:#ffff00;">&nbsp;50 </span><br />
<span style="color:#ffff00;">&nbsp;51 </span><span style="color:#ffff00;"><b>print</b></span>&nbsp;<span style="color:#00ffff;">&quot;</span><span style="color:#ff6060;"><b>\n\n</b></span><span style="color:#00ffff;">&quot;</span>;<br />
<span style="color:#ffff00;">&nbsp;52 </span><br />
<span style="color:#ffff00;">&nbsp;53 </span><span style="color:#cc6600;"><b># Acessando os dados de um hashing específicado pelo índice</b></span><br />
<span style="color:#ffff00;">&nbsp;54 </span><span style="color:#00ffff;"><b>$animal</b></span>&nbsp;= <span style="color:#00ffff;">'</span><span style="color:#00ffff;">jabuti</span><span style="color:#00ffff;">'</span>;<br />
<span style="color:#ffff00;">&nbsp;55 </span><span style="color:#ffff00;"><b>print</b></span>&nbsp;<span style="color:#00ffff;">&quot;</span><span style="color:#00ffff;">A média de vida do </span><span style="color:#00ffff;"><b>$animal</b></span><span style="color:#00ffff;">&nbsp;é de </span><span style="color:#00ffff;"><b>$idade</b></span><span style="color:#00ffff;">{</span><span style="color:#00ffff;"><b>$animal</b></span><span style="color:#00ffff;">} anos </span><span style="color:#ff6060;"><b>\n</b></span><span style="color:#00ffff;">&quot;</span>;<br />
<span style="color:#ffff00;">&nbsp;56 </span><br />
<span style="color:#ffff00;">&nbsp;57 </span><span style="color:#ffff00;"><b>print</b></span>&nbsp;<span style="color:#00ffff;">&quot;</span><span style="color:#ff6060;"><b>\n\n</b></span><span style="color:#00ffff;">&quot;</span>;<br />
<span style="color:#ffff00;">&nbsp;58 </span><br />
<span style="color:#ffff00;">&nbsp;59 </span><span style="color:#cc6600;"><b># Acessando as chaves do hashing</b></span><br />
<span style="color:#ffff00;">&nbsp;60 </span><span style="color:#ffff00;"><b>print</b></span>&nbsp;<span style="color:#00ffff;">&quot;</span><span style="color:#00ffff;">Os animais são:</span><span style="color:#ff6060;"><b>\n</b></span><span style="color:#00ffff;">&quot;</span>;<br />
<span style="color:#ffff00;">&nbsp;61 </span><span style="color:#00ffff;"><b>@animais</b></span>&nbsp;= <span style="color:#ffff00;"><b>keys</b></span>&nbsp;<span style="color:#00ffff;"><b>%idade</b></span>;<br />
<span style="color:#ffff00;">&nbsp;62 </span><span style="color:#ffff00;"><b>foreach</b></span>&nbsp;(<span style="color:#00ffff;"><b>@animais</b></span>){<br />
<span style="color:#ffff00;">&nbsp;63 </span>&nbsp;&nbsp;<span style="color:#ffff00;"><b>print</b></span>&nbsp;<span style="color:#00ffff;">&quot;</span><span style="color:#00ffff;">-</span><span style="color:#00ffff;"><b>$_</b></span><span style="color:#00ffff;">&nbsp;</span><span style="color:#ff6060;"><b>\n</b></span><span style="color:#00ffff;">&quot;</span>;<br />
<span style="color:#ffff00;">&nbsp;64 </span>}<br />
<span style="color:#ffff00;">&nbsp;65 </span><br />
<span style="color:#ffff00;">&nbsp;66 </span><span style="color:#ffff00;"><b>print</b></span>&nbsp;<span style="color:#00ffff;">&quot;</span><span style="color:#ff6060;"><b>\n\n</b></span><span style="color:#00ffff;">'</span><span style="color:#00ffff;">&quot;</span>;<br />
<span style="color:#ffff00;">&nbsp;67 </span><br />
<span style="color:#ffff00;">&nbsp;68 </span><span style="color:#cc6600;"><b># Acessando os valores</b></span><br />
<span style="color:#ffff00;">&nbsp;69 </span><span style="color:#ffff00;"><b>print</b></span>&nbsp;<span style="color:#00ffff;">&quot;</span><span style="color:#00ffff;">A idades dos animais:</span><span style="color:#ff6060;"><b>\n</b></span><span style="color:#00ffff;">&quot;</span>;<br />
<span style="color:#ffff00;">&nbsp;70 </span><span style="color:#00ffff;"><b>@animais</b></span>&nbsp;= <span style="color:#ffff00;"><b>values</b></span>&nbsp;<span style="color:#00ffff;"><b>%idade</b></span>;<br />
<span style="color:#ffff00;">&nbsp;71 </span><span style="color:#ffff00;"><b>foreach</b></span>&nbsp;(<span style="color:#00ffff;"><b>@animais</b></span>){<br />
<span style="color:#ffff00;">&nbsp;72 </span>&nbsp;&nbsp;<span style="color:#ffff00;"><b>print</b></span>&nbsp;<span style="color:#00ffff;">&quot;</span><span style="color:#00ffff;">-</span><span style="color:#00ffff;"><b>$_</b></span><span style="color:#00ffff;">&nbsp;</span><span style="color:#ff6060;"><b>\n</b></span><span style="color:#00ffff;">&quot;</span>;<br />
<span style="color:#ffff00;">&nbsp;73 </span>}<br />
<span style="color:#ffff00;">&nbsp;74 </span><br />
<span style="color:#ffff00;">&nbsp;75 </span><span style="color:#ffff00;"><b>print</b></span>&nbsp;<span style="color:#00ffff;">&quot;</span><span style="color:#ff6060;"><b>\n\n</b></span><span style="color:#00ffff;">&quot;</span>;<br />
<span style="color:#ffff00;">&nbsp;76 </span><br />
<span style="color:#ffff00;">&nbsp;77 </span><br />
<span style="color:#ffff00;">&nbsp;78 </span><span style="color:#cc6600;"><b># Pegando o tamanho de um hashing</b></span><br />
<span style="color:#ffff00;">&nbsp;79 </span><span style="color:#ffff00;"><b>print</b></span>&nbsp;<span style="color:#00ffff;">&quot;</span><span style="color:#00ffff;">Quantidade de animais:</span><span style="color:#ff6060;"><b>\n</b></span><span style="color:#00ffff;">&quot;</span>;<br />
<span style="color:#ffff00;">&nbsp;80 </span><span style="color:#00ffff;"><b>$quantidade_animais</b></span>&nbsp;= <span style="color:#ffff00;"><b>keys</b></span>&nbsp;<span style="color:#00ffff;"><b>%idade</b></span>;<br />
<span style="color:#ffff00;">&nbsp;81 </span><span style="color:#ffff00;"><b>print</b></span>&nbsp;<span style="color:#00ffff;"><b>$quantidade_animais</b></span>;<br />
<span style="color:#ffff00;">&nbsp;82 </span><br />
<span style="color:#ffff00;">&nbsp;83 </span><span style="color:#ffff00;"><b>print</b></span>&nbsp;<span style="color:#00ffff;">&quot;</span><span style="color:#ff6060;"><b>\n\n</b></span><span style="color:#00ffff;">&quot;</span>;<br />
<span style="color:#ffff00;">&nbsp;84 </span><br />
<span style="color:#ffff00;">&nbsp;85 </span><span style="color:#cc6600;"><b># Acessando parte de um hashing</b></span><br />
<span style="color:#ffff00;">&nbsp;86 </span><span style="color:#ffff00;"><b>print</b></span>&nbsp;<span style="color:#00ffff;">&quot;</span><span style="color:#00ffff;">Animais que vivem mais tempo:</span><span style="color:#ff6060;"><b>\n</b></span><span style="color:#00ffff;">&quot;</span>;<br />
<span style="color:#ffff00;">&nbsp;87 </span><span style="color:#00ffff;"><b>@mais_velho</b></span>&nbsp;= (<span style="color:#00ffff;">'</span><span style="color:#00ffff;">jabuti</span><span style="color:#00ffff;">'</span>, <span style="color:#00ffff;">'</span><span style="color:#00ffff;">elefante</span><span style="color:#00ffff;">'</span>);<br />
<span style="color:#ffff00;">&nbsp;88 </span><span style="color:#ffff00;"><b>foreach</b></span>&nbsp;(<span style="color:#00ffff;"><b>@mais_velho</b></span>){<br />
<span style="color:#ffff00;">&nbsp;89 </span>&nbsp;&nbsp;<span style="color:#00ffff;"><b>$mais_velho</b></span>{<span style="color:#00ffff;"><b>$_</b></span>} = <span style="color:#00ffff;"><b>$idade</b></span>{<span style="color:#00ffff;"><b>$_</b></span>};<br />
<span style="color:#ffff00;">&nbsp;90 </span>}<br />
<span style="color:#ffff00;">&nbsp;91 </span><span style="color:#ffff00;"><b>while</b></span>&nbsp;((<span style="color:#00ffff;"><b>$nome</b></span>, <span style="color:#00ffff;"><b>$idade</b></span>) = <span style="color:#ffff00;"><b>each</b></span>&nbsp;<span style="color:#00ffff;"><b>%mais_velho</b></span>){<br />
<span style="color:#ffff00;">&nbsp;92 </span>&nbsp;&nbsp;<span style="color:#ffff00;"><b>print</b></span>&nbsp;<span style="color:#00ffff;">&quot;</span><span style="color:#00ffff;">-</span><span style="color:#00ffff;"><b>$nome</b></span><span style="color:#00ffff;">&nbsp;vive </span><span style="color:#00ffff;"><b>$idade</b></span><span style="color:#00ffff;">&nbsp;anos</span><span style="color:#ff6060;"><b>\n</b></span><span style="color:#00ffff;">&quot;</span>;<br />
<span style="color:#ffff00;">&nbsp;93 </span>}<br />
<span style="color:#ffff00;">&nbsp;94 </span><br />
<span style="color:#ffff00;">&nbsp;95 </span><span style="color:#ffff00;"><b>print</b></span>&nbsp;<span style="color:#00ffff;">&quot;</span><span style="color:#ff6060;"><b>\n\n</b></span><span style="color:#00ffff;">&quot;</span>;<br />
<span style="color:#ffff00;">&nbsp;96 </span><br />
<span style="color:#ffff00;">&nbsp;97 </span><span style="color:#cc6600;"><b># Montando uma lista contendo o quadrado dos números</b></span><br />
<span style="color:#ffff00;">&nbsp;98 </span><span style="color:#00ffff;"><b>@numeros</b></span>&nbsp;= (<span style="color:#ff40ff;"><b>1</b></span>, <span style="color:#ff40ff;"><b>2</b></span>, <span style="color:#ff40ff;"><b>3</b></span>, <span style="color:#ff40ff;"><b>4</b></span>, <span style="color:#ff40ff;"><b>5</b></span>, <span style="color:#ff40ff;"><b>6</b></span>);<br />
<span style="color:#ffff00;">&nbsp;99 </span><span style="color:#00ffff;"><b>%quadrado</b></span>&nbsp;= <span style="color:#ffff00;"><b>map</b></span>&nbsp;{ <span style="color:#00ffff;"><b>$_</b></span>&nbsp;=&gt; (<span style="color:#00ffff;"><b>$_</b></span>&nbsp;* <span style="color:#00ffff;"><b>$_</b></span>) } <span style="color:#00ffff;"><b>@numeros</b></span>;<br />
<span style="color:#ffff00;">100 </span><span style="color:#ffff00;"><b>while</b></span>&nbsp;((<span style="color:#00ffff;"><b>$numero</b></span>, <span style="color:#00ffff;"><b>$quadrado</b></span>) = <span style="color:#ffff00;"><b>each</b></span>&nbsp;<span style="color:#00ffff;"><b>%quadrado</b></span>){<br />
<span style="color:#ffff00;">101 </span>&nbsp;&nbsp;<span style="color:#ffff00;"><b>print</b></span>&nbsp;<span style="color:#00ffff;">&quot;</span><span style="color:#00ffff;">O quandrado de </span><span style="color:#00ffff;"><b>$numero</b></span><span style="color:#00ffff;">&nbsp;é </span><span style="color:#00ffff;"><b>$quadrado</b></span><span style="color:#00ffff;">&nbsp;</span><span style="color:#ff6060;"><b>\n</b></span><span style="color:#00ffff;">&quot;</span>;<br />
<span style="color:#ffff00;">102 </span>}<br />
</span><br />
</code>
</div>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/iniciandoemperl.wordpress.com/181/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/iniciandoemperl.wordpress.com/181/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/iniciandoemperl.wordpress.com/181/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/iniciandoemperl.wordpress.com/181/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/iniciandoemperl.wordpress.com/181/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/iniciandoemperl.wordpress.com/181/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/iniciandoemperl.wordpress.com/181/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/iniciandoemperl.wordpress.com/181/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/iniciandoemperl.wordpress.com/181/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/iniciandoemperl.wordpress.com/181/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/iniciandoemperl.wordpress.com/181/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/iniciandoemperl.wordpress.com/181/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/iniciandoemperl.wordpress.com/181/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/iniciandoemperl.wordpress.com/181/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=iniciandoemperl.wordpress.com&amp;blog=5432101&amp;post=181&amp;subd=iniciandoemperl&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://iniciandoemperl.wordpress.com/2008/12/01/hashings-de-perl/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/47fbf8a92a237c006a82e8b63fd155b5?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">dyegoreisa</media:title>
		</media:content>
	</item>
		<item>
		<title>Conectando no banco com DBI</title>
		<link>http://iniciandoemperl.wordpress.com/2008/12/01/conectando-no-banco-com-dbi/</link>
		<comments>http://iniciandoemperl.wordpress.com/2008/12/01/conectando-no-banco-com-dbi/#comments</comments>
		<pubDate>Mon, 01 Dec 2008 11:00:16 +0000</pubDate>
		<dc:creator>Lawrence</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://iniciandoemperl.wordpress.com/?p=150</guid>
		<description><![CDATA[A interface com banco de dados no Perl é centralizada no módulo DBI. Para este módulo, existem os drivers para cada banco de dados, como DBD::mysql, DBD::pgsql, etc. No Debian, o Mysql já instala o driver de conexão do Perl automaticamente, mas se não estivesse instalado, para pegar os pacotes da distribuição seria: # aptitude [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=iniciandoemperl.wordpress.com&amp;blog=5432101&amp;post=150&amp;subd=iniciandoemperl&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>A interface com banco de dados no Perl é centralizada no módulo DBI. Para este módulo, existem os drivers para cada banco de dados, como DBD::mysql, DBD::pgsql, etc.</p>
<p>No Debian, o Mysql já instala o driver de conexão do Perl automaticamente, mas se não estivesse instalado, para pegar os pacotes da distribuição seria:</p>
<div style="background-color:#666;color:#fff;"><span style="color:#f00;">#</span> aptitude install libdbi-perl libdbd-mysql-perl</div>
<p>A interface para utilização é bem simples:</p>
<div style="background-color:#fff;color:#000;border-left:3px solid #ccc;padding:.5em;"><span style="color:#a020f0;">#!/usr/bin/perl</span><br />
&nbsp;<br />
<span style="color:#a52a2a;">use strict</span>;<br />
<span style="color:#a52a2a;">use warnings</span>;<br />
&nbsp;<br />
<span style="color:#a52a2a;">use </span>DBI;<br />
&nbsp;<br />
<span style="color:#a52a2a;">my</span>&nbsp;<span style="color:#008b8b;">$dbh</span>&nbsp;= DBI-&gt;<span style="color:#a52a2a;">connect</span>(<span style="color:#ff00ff;">&#39;</span><span style="color:#ff00ff;">dbi:mysql:wordpress</span><span style="color:#ff00ff;">&#39;</span>, <span style="color:#ff00ff;">&#39;</span><span style="color:#ff00ff;">nobody</span><span style="color:#ff00ff;">&#39;</span>, <span style="color:#ff00ff;">&#39;</span><span style="color:#ff00ff;">nobody</span><span style="color:#ff00ff;">&#39;</span>);<br />
&nbsp;<br />
<span style="color:#a52a2a;">my</span>&nbsp;<span style="color:#008b8b;">$sth</span>&nbsp;= <span style="color:#008b8b;">$dbh</span>-&gt;prepare(<span style="color:#ff00ff;">&#39;</span><span style="color:#ff00ff;">SELECT * FROM wp_posts</span><span style="color:#ff00ff;">&#39;</span>);<br />
<span style="color:#008b8b;">$sth</span>-&gt;execute();<br />
&nbsp;<br />
<span style="color:#a52a2a;">while</span>&nbsp;( <span style="color:#a52a2a;">my</span>&nbsp;<span style="color:#008b8b;">$row</span>&nbsp;= <span style="color:#008b8b;">$sth</span>-&gt;fetchrow_hashref ) {<br />
&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:#a52a2a;">print</span>&nbsp;<span style="color:#008b8b;">$row</span>-&gt;{post_title}, <span style="color:#ff00ff;">&quot;</span><span style="color:#6a5acd;">\n</span><span style="color:#ff00ff;">&quot;</span>;<br />
}</div>
<p>A diferença pra quem está vindo do PHP é que primeiro preparamos a query com o método <em>prepare</em> no objeto da conexão. O método retorna um objeto DBI::st que representa o <em>statement</em>, e então executamos a query com <em>execute</em>.</p>
<p>O legal na verdade é quando utilizamos parâmetros. Preparamos a query com <em>placeholders</em> e passamos os parâmetros pro <em>execute</em>.</p>
<p>Além de evitar preocupação com escapar os dados, queries que serão executadas mais de uma vez com parâmetros diferentes são preparadas uma única vez, com ganhos de performance consideráveis em alguns SGBDs.</p>
<div style="background-color:#fff;color:#000;border-left:3px solid #ccc;padding:.5em;"><span style="color:#008b8b;">$sth</span>&nbsp;= <span style="color:#008b8b;">$dbh</span>-&gt;prepare(<span style="color:#ff00ff;">&#39;</span><br />
<span style="color:#ff00ff;">&nbsp;&nbsp;&nbsp;&nbsp;SELECT * FROM wp_posts</span><br />
<span style="color:#ff00ff;">&nbsp;&nbsp;&nbsp;&nbsp;WHERE post_author = ?</span><br />
<span style="color:#ff00ff;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;AND post_title = ?</span><br />
<span style="color:#ff00ff;">&#39;</span>);<br />
&nbsp;<br />
<span style="color:#008b8b;">$sth</span>-&gt;execute(<span style="color:#ff00ff;">1</span>, <span style="color:#ff00ff;">&#39;</span><span style="color:#ff00ff;">Hello world!</span><span style="color:#ff00ff;">&#39;</span>);<br />
<span style="color:#a52a2a;">printf</span>&nbsp;<span style="color:#ff00ff;">&quot;</span><span style="color:#ff00ff;">Total de hello world: %d</span><span style="color:#6a5acd;">\n</span><span style="color:#ff00ff;">&quot;</span>, <span style="color:#008b8b;">$sth</span>-&gt;rows;<br />
&nbsp;<br />
<span style="color:#008b8b;">$sth</span>-&gt;execute(<span style="color:#ff00ff;">1</span>, <span style="color:#ff00ff;">&#39;</span><span style="color:#ff00ff;">Teste</span><span style="color:#ff00ff;">&#39;</span>);<br />
<span style="color:#a52a2a;">printf</span>&nbsp;<span style="color:#ff00ff;">&quot;</span><span style="color:#ff00ff;">Total de teste: %d</span><span style="color:#6a5acd;">\n</span><span style="color:#ff00ff;">&quot;</span>, <span style="color:#008b8b;">$sth</span>-&gt;rows;</div>
<p>E é isso. Post rápido só pra dar base pra alguma aplicação que a gente queira testar mais pra frente.</p>
<p>Veja a documentação da API pra detalhes interessantes:<br />
<a href="http://search.cpan.org/~timb/DBI-1.607/DBI.pm">http://search.cpan.org/~timb/DBI-1.607/DBI.pm</a></p>
<div style="border:1px solid#ccc;background-color:#eaeaea;padding:.5em;" id="ps-performance"><em>Obs:</em> Sabe-se que, pelo menos até a versão 5.0, o <em>query cache</em> não funciona no MySQL se utilizado com <em>prepared statements</em>. Já o Oracle consegue guardar o plano de execução, evitando ter que determinar a melhor estragégia de busca a cada query. Com <em>prepared statements</em> o plano de execução fica em cache indepentente dos parâmetros, conseguindo um ganho significativo de performance.</div>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/iniciandoemperl.wordpress.com/150/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/iniciandoemperl.wordpress.com/150/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/iniciandoemperl.wordpress.com/150/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/iniciandoemperl.wordpress.com/150/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/iniciandoemperl.wordpress.com/150/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/iniciandoemperl.wordpress.com/150/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/iniciandoemperl.wordpress.com/150/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/iniciandoemperl.wordpress.com/150/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/iniciandoemperl.wordpress.com/150/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/iniciandoemperl.wordpress.com/150/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/iniciandoemperl.wordpress.com/150/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/iniciandoemperl.wordpress.com/150/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/iniciandoemperl.wordpress.com/150/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/iniciandoemperl.wordpress.com/150/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=iniciandoemperl.wordpress.com&amp;blog=5432101&amp;post=150&amp;subd=iniciandoemperl&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://iniciandoemperl.wordpress.com/2008/12/01/conectando-no-banco-com-dbi/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/b8b6b794629f989d04758cfd29d92318?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Lawrence</media:title>
		</media:content>
	</item>
		<item>
		<title>Instruções básicas de Perl</title>
		<link>http://iniciandoemperl.wordpress.com/2008/11/24/instrucoes-basicas-de-perl/</link>
		<comments>http://iniciandoemperl.wordpress.com/2008/11/24/instrucoes-basicas-de-perl/#comments</comments>
		<pubDate>Mon, 24 Nov 2008 09:00:16 +0000</pubDate>
		<dc:creator>dyegoreisa</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[array]]></category>
		<category><![CDATA[grep]]></category>
		<category><![CDATA[map]]></category>
		<category><![CDATA[perl]]></category>
		<category><![CDATA[pop]]></category>
		<category><![CDATA[shift]]></category>
		<category><![CDATA[splice]]></category>
		<category><![CDATA[unshift]]></category>

		<guid isPermaLink="false">http://iniciandoemperl.wordpress.com/?p=132</guid>
		<description><![CDATA[Executando Perl Inicialmente devemos criar um arquivo com a extensão .pl Nas primeira linha devemos colocar a instrução abaixo: #!/usr/bin/perl Esta instrução é o caminho do interpretador do Perl. para executar devemos usar a instrução abaixo: $ perl exec1.pl ou $ ./exec1.pl já que mencionamos o interpretador na primeira linha, lembrado de dar permissão para [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=iniciandoemperl.wordpress.com&amp;blog=5432101&amp;post=132&amp;subd=iniciandoemperl&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p><strong>Executando Perl</strong></p>
<p>Inicialmente devemos criar um arquivo com a extensão .pl<br />
Nas primeira linha devemos colocar a instrução abaixo:<br />
<code style="display:block;background:#eaeaea;">#!/usr/bin/perl</code></p>
<p>Esta instrução é o caminho do interpretador do Perl.</p>
<p>para executar devemos usar a instrução abaixo:<br />
<code style="display:block;background:#eaeaea;">$ perl exec1.pl</code></p>
<p>ou</p>
<p><code style="display:block;background:#eaeaea;">$ ./exec1.pl</code></p>
<p>já que mencionamos o interpretador na primeira linha, lembrado de dar permissão para execução.</p>
<p>Seguem algumas instruções de linha de comando úteis</p>
<p>-w -&gt; Solicita à Perl para avisar se há pratica de programação perigosa, pode ser usado &#8220;use warnings;&#8221;, mas só seŕa avisado dentro do contexto.<br />
-T -&gt; Ativa o modo &#8220;taint&#8221; da Perl. Neste modo toda entra de uma fonte externa é colocada em dúvida por padrão.<br />
-c -&gt; Verfica os erros de sintaxe de um script sem executar.<br />
-d -&gt; Executa o script usando um depurador imbutido da Perl.<br />
-e -&gt; Esta opção é usada quando define se que uma string seja o código a sere executado.</p>
<p><strong>Scalar</strong></p>
<p>Uma variável de scalar mantém apenas um único item dos dados.<br />
Toda variável de scalar é precedida de $.</p>
<p><code style="display:block;background:#eaeaea;">$texto = 'Ola mundo!';<br />
$contador = 100;<br />
$contador = 'Cem';<br />
</code></p>
<p>Em Perl a mesma variável pode conter texto e números a Perl se encarrega de converter conforme o contexto.</p>
<p>Questão das aspas.<br />
Se uma string está entre aspas duplas  e contém nomes de variáveis, então essas variáveis são  substituidas por seus  valores no final da string.<br />
Se a string está entre apóstrofes, então a subistituição da variável não ocorrerá.<br />
É importante ressaltar que usando aspas duplas é possível usar os caracteres de especiais, como o \n \t entre outros.</p>
<p>O exemplo abaixo exemplifica o uso da aspas.</p>
<div style="background-color:#000000;color:#ffffff;"><code><br />
<span style="color:#ffff00;">&nbsp;1 </span><span style="color:#8080ff;"><b>#!/usr/bin/perl</b></span><br />
<span style="color:#ffff00;">&nbsp;2 </span><br />
<span style="color:#ffff00;">&nbsp;3 </span><span style="color:#ffff00;"><b>use warnings</b></span>;<br />
<span style="color:#ffff00;">&nbsp;4 </span><span style="color:#ffff00;"><b>use strict</b></span>;<br />
<span style="color:#ffff00;">&nbsp;5 </span><br />
<span style="color:#ffff00;">&nbsp;6 </span><span style="color:#ffff00;"><b>my</b></span>&nbsp;<span style="color:#00ffff;"><b>$marido</b></span>,<br />
<span style="color:#ffff00;">&nbsp;7 </span><span style="color:#ffff00;"><b>my</b></span>&nbsp;<span style="color:#00ffff;"><b>$mulher</b></span>;<br />
<span style="color:#ffff00;">&nbsp;8 </span><span style="color:#ffff00;"><b>my</b></span>&nbsp;<span style="color:#00ffff;"><b>$filha</b></span>;<br />
<span style="color:#ffff00;">&nbsp;9 </span><span style="color:#ffff00;"><b>my</b></span>&nbsp;<span style="color:#00ffff;"><b>$mensagem1</b></span>;<br />
<span style="color:#ffff00;">10 </span><span style="color:#ffff00;"><b>my</b></span>&nbsp;<span style="color:#00ffff;"><b>$mensagem2</b></span>;<br />
<span style="color:#ffff00;">11 </span><br />
<span style="color:#ffff00;">12 </span><span style="color:#00ffff;"><b>$marido</b></span>&nbsp;= <span style="color:#00ffff;">&quot;</span><span style="color:#00ffff;">Dyego</span><span style="color:#00ffff;">&quot;</span>;<br />
<span style="color:#ffff00;">13 </span><span style="color:#00ffff;"><b>$mulher</b></span>&nbsp;= <span style="color:#00ffff;">&quot;</span><span style="color:#00ffff;">Vanessa</span><span style="color:#00ffff;">&quot;</span>;<br />
<span style="color:#ffff00;">14 </span><span style="color:#00ffff;"><b>$filha</b></span>&nbsp;= <span style="color:#00ffff;">&quot;</span><span style="color:#00ffff;">Beatriz</span><span style="color:#00ffff;">&quot;</span>;<br />
<span style="color:#ffff00;">15 </span><br />
<span style="color:#ffff00;">16 </span><span style="color:#00ffff;"><b>$mensagem1</b></span>&nbsp;= <span style="color:#00ffff;">&quot;</span><span style="color:#00ffff;">O </span><span style="color:#00ffff;"><b>$marido</b></span><span style="color:#00ffff;">&nbsp;ama muito a </span><span style="color:#00ffff;"><b>$mulher</b></span><span style="color:#00ffff;">&nbsp;e a </span><span style="color:#00ffff;"><b>$filha</b></span><span style="color:#00ffff;">.</span><span style="color:#ff6060;"><b>\n</b></span><span style="color:#00ffff;">&quot;</span>;<br />
<span style="color:#ffff00;">17 </span><span style="color:#00ffff;"><b>$mensagem2</b></span>&nbsp;= <span style="color:#00ffff;">'</span><span style="color:#00ffff;">O $marido ama muito a $mulher e a $filha.\n</span><span style="color:#00ffff;">'</span>;<br />
<span style="color:#ffff00;">18 </span><br />
<span style="color:#ffff00;">19 </span><br />
<span style="color:#ffff00;">20 </span><span style="color:#cc6600;"><b># imprime: O Dyego ama muito a Vanessa e a Beatriz.</b></span><br />
<span style="color:#ffff00;">21 </span><span style="color:#ffff00;"><b>print</b></span>&nbsp;<span style="color:#00ffff;"><b>$mensagem1</b></span>;<br />
<span style="color:#ffff00;">22 </span><br />
<span style="color:#ffff00;">23 </span><span style="color:#cc6600;"><b># imprime: O $marido ama muito a $mulher e a $filha.\n</b></span><br />
<span style="color:#ffff00;">24 </span><span style="color:#ffff00;"><b>print</b></span>&nbsp;<span style="color:#00ffff;"><b>$mensagem2</b></span>;<br />
</code>
</div>
<p><strong>Array</strong></p>
<p>Um array contém uma lista de valores scalars ordenados<br />
Um array é precedido de @</p>
<p><code style="display:block;background:#eaeaea;">@vazio = ();<br />
@mamiferos = ('macaco', 'elefante', 'urso');<br />
@repteis = ('jacaré', 'tartaruga', 'lagarto');<br />
@animais = (@mamiferos, @repteis); # Obtém um array de de seis elementos.<br />
($carnivoro, $hebivoro, $onivoro) = @repteis;<br />
</code></p>
<p>Para acessar os elementos do array dever ser usada a sintaxe abaixo:</p>
<p><code style="display:block;background:#eaeaea;">$array[0]</code></p>
<p>Esta sintaxe pode ser usada para estabelecer e atribuir valor para um scalar.</p>
<p><code style="display:block;background:#eaeaea;">$paquiderme = $mamiferos[1]; # valor é elefante</code></p>
<p>Quanto trabalhamos com o valor individual de array usamos o prefixo de um scalar $.</p>
<p>É possível acessar os últimos valores de um array usando o índice negativo.</p>
<p><code style="display:block;background:#eaeaea;">$maritimo = $repteis[-2]; # valor é tartaruga</code></p>
<p>Para obter o tamanho de um array basta atribuir o array a um scalar.</p>
<p><code style="display:block;background:#eaeaea;">$qtde = @animais; # valor retornado é 6</code></p>
<p>Há uma sutil diferença entre uma lista de um array</p>
<p><code style="display:block;background:#eaeaea;">$contador = @repteis; # O conteúdo de $contador é 3<br />
$ultimo = ('macaco', 'usro'); # O conteúdo de $ultimo é 'urso'</code></p>
<p><strong>Algumas funções para manipulação de arrays</strong></p>
<ul>
<li>push &#8211; Acrescenta os elementos da lista ao final do array. (push ARRAY, LIST)</li>
<li>pop &#8211; Remove e retorna o último elementos do array. (pop ARRAY)</li>
<li>shift &#8211; Remove e retorna o primeiro elemento do array. (shift ARRAY)</li>
<li>unshift &#8211; Acrescenta os elementos da lista na frente do array. (unshift ARRAY, LIST)</li>
<li>splice &#8211; Remove e retorna os elementos LENGTH do ARRAY que começa no elemento OFFSET e os substitui pelos elementos da LIST. Se LIST for omitida então os elementos removidos serão simplesmente apagados. se LENGTH for omitido então tudo desde OFFSET até o final do ARRAY será removido. (splice ARRAY, OFFSET, LENGTH, LIST)</li>
</ul>
<p>Map e Grep são outras listas bastante úteis de processamento de funções.</p>
<ul>
<li>map &#8211; Executa o código e monta a lista com os valores de retorno sem avaliar se é verdadeiro</li>
<li>grep &#8211; Executa o código e monta a lista com os valores avaliando se o código retornado é verdadeiro.</li>
</ul>
<p>Criando uma lista de quandrados</p>
<p><code style="display:block;background:#eaeaea;">@numeros = (1..10);<br />
@quadrados = map { $_ * $_ } @numeros;</code></p>
<p>Cria uma lista do os valores impares</p>
<p><code style="display:block;background:#eaeaea;">@impares = grep { $_ % 2 } @numeros;</code></p>
<p>Abaixo segue um código que mostra o uso de arrays:</p>
<div style="background-color:#000000;color:#ffffff;">
<code><br />
<span style="color:#ffff00;">&nbsp;&nbsp;1 </span><span style="color:#8080ff;"><b>#!/usr/bin/perl</b></span><br />
<span style="color:#ffff00;">&nbsp;&nbsp;2 </span><br />
<span style="color:#ffff00;">&nbsp;&nbsp;3 </span><span style="color:#ffff00;"><b>use warnings</b></span>;<br />
<span style="color:#ffff00;">&nbsp;&nbsp;4 </span><span style="color:#ffff00;"><b>use strict</b></span>;<br />
<span style="color:#ffff00;">&nbsp;&nbsp;5 </span><br />
<span style="color:#ffff00;">&nbsp;&nbsp;6 </span><span style="color:#ffff00;"><b>my</b></span>&nbsp;<span style="color:#00ffff;"><b>@vazio</b></span>;<br />
<span style="color:#ffff00;">&nbsp;&nbsp;7 </span><span style="color:#ffff00;"><b>my</b></span>&nbsp;<span style="color:#00ffff;"><b>@mamiferos</b></span>;<br />
<span style="color:#ffff00;">&nbsp;&nbsp;8 </span><span style="color:#ffff00;"><b>my</b></span>&nbsp;<span style="color:#00ffff;"><b>@repteis</b></span>;<br />
<span style="color:#ffff00;">&nbsp;&nbsp;9 </span><span style="color:#ffff00;"><b>my</b></span>&nbsp;<span style="color:#00ffff;"><b>@animais</b></span>;<br />
<span style="color:#ffff00;">&nbsp;10 </span><span style="color:#ffff00;"><b>my</b></span>&nbsp;<span style="color:#00ffff;"><b>$carnivoro</b></span>;<br />
<span style="color:#ffff00;">&nbsp;11 </span><span style="color:#ffff00;"><b>my</b></span>&nbsp;<span style="color:#00ffff;"><b>$herbivoro</b></span>;<br />
<span style="color:#ffff00;">&nbsp;12 </span><span style="color:#ffff00;"><b>my</b></span>&nbsp;<span style="color:#00ffff;"><b>$onivoro</b></span>;<br />
<span style="color:#ffff00;">&nbsp;13 </span><span style="color:#ffff00;"><b>my</b></span>&nbsp;<span style="color:#00ffff;"><b>$paquiderme</b></span>;<br />
<span style="color:#ffff00;">&nbsp;14 </span><span style="color:#ffff00;"><b>my</b></span>&nbsp;<span style="color:#00ffff;"><b>$maritimo</b></span>;<br />
<span style="color:#ffff00;">&nbsp;15 </span><span style="color:#ffff00;"><b>my</b></span>&nbsp;<span style="color:#00ffff;"><b>$qtde</b></span>;<br />
<span style="color:#ffff00;">&nbsp;16 </span><span style="color:#ffff00;"><b>my</b></span>&nbsp;<span style="color:#00ffff;"><b>$contador</b></span>;<br />
<span style="color:#ffff00;">&nbsp;17 </span><span style="color:#ffff00;"><b>my</b></span>&nbsp;<span style="color:#00ffff;"><b>$ultimo</b></span>;<br />
<span style="color:#ffff00;">&nbsp;18 </span><span style="color:#ffff00;"><b>my</b></span>&nbsp;<span style="color:#00ffff;"><b>$resultado</b></span>;<br />
<span style="color:#ffff00;">&nbsp;19 </span><span style="color:#ffff00;"><b>my</b></span>&nbsp;<span style="color:#00ffff;"><b>@numeros</b></span>;<br />
<span style="color:#ffff00;">&nbsp;20 </span><span style="color:#ffff00;"><b>my</b></span>&nbsp;<span style="color:#00ffff;"><b>@quadrados</b></span>;<br />
<span style="color:#ffff00;">&nbsp;21 </span><span style="color:#ffff00;"><b>my</b></span>&nbsp;<span style="color:#00ffff;"><b>@impares</b></span>;<br />
<span style="color:#ffff00;">&nbsp;22 </span><br />
<span style="color:#ffff00;">&nbsp;23 </span><span style="color:#cc6600;"><b># Imprime o array @vazio</b></span><br />
<span style="color:#ffff00;">&nbsp;24 </span><span style="color:#00ffff;"><b>@vazio</b></span>&nbsp;= ();<br />
<span style="color:#ffff00;">&nbsp;25 </span><span style="color:#ffff00;"><b>print</b></span>&nbsp;<span style="color:#00ffff;">&quot;</span><span style="color:#00ffff;">Vazio:</span><span style="color:#ff6060;"><b>\n</b></span><span style="color:#00ffff;">&quot;</span>;<br />
<span style="color:#ffff00;">&nbsp;26 </span><span style="color:#ffff00;"><b>print</b></span>&nbsp;<span style="color:#00ffff;"><b>@vazio</b></span>;<br />
<span style="color:#ffff00;">&nbsp;27 </span><br />
<span style="color:#ffff00;">&nbsp;28 </span><span style="color:#ffff00;"><b>print</b></span>&nbsp;<span style="color:#00ffff;">&quot;</span><span style="color:#ff6060;"><b>\n\n</b></span><span style="color:#00ffff;">&quot;</span>;<br />
<span style="color:#ffff00;">&nbsp;29 </span><br />
<span style="color:#ffff00;">&nbsp;30 </span><span style="color:#cc6600;"><b># Imprime o array @mamiferos</b></span><br />
<span style="color:#ffff00;">&nbsp;31 </span><span style="color:#00ffff;"><b>@mamiferos</b></span>&nbsp;= (<span style="color:#00ffff;">'</span><span style="color:#00ffff;">macaco</span><span style="color:#00ffff;">'</span>, <span style="color:#00ffff;">'</span><span style="color:#00ffff;">elefante</span><span style="color:#00ffff;">'</span>, <span style="color:#00ffff;">'</span><span style="color:#00ffff;">urso</span><span style="color:#00ffff;">'</span>);<br />
<span style="color:#ffff00;">&nbsp;32 </span><span style="color:#ffff00;"><b>print</b></span>&nbsp;<span style="color:#00ffff;">&quot;</span><span style="color:#00ffff;">Mamiferos:</span><span style="color:#ff6060;"><b>\n</b></span><span style="color:#00ffff;">&quot;</span>;<br />
<span style="color:#ffff00;">&nbsp;33 </span><span style="color:#ffff00;"><b>foreach</b></span>&nbsp;(<span style="color:#00ffff;"><b>@mamiferos</b></span>){<br />
<span style="color:#ffff00;">&nbsp;34 </span>&nbsp;&nbsp;<span style="color:#ffff00;"><b>print</b></span>&nbsp;<span style="color:#00ffff;">&quot;</span><span style="color:#00ffff;">- </span><span style="color:#00ffff;"><b>$_</b></span><span style="color:#00ffff;">&nbsp;</span><span style="color:#ff6060;"><b>\n</b></span><span style="color:#00ffff;">&quot;</span>;<br />
<span style="color:#ffff00;">&nbsp;35 </span>}<br />
<span style="color:#ffff00;">&nbsp;36 </span><span style="color:#ffff00;"><b>print</b></span>&nbsp;<span style="color:#00ffff;">&quot;</span><span style="color:#ff6060;"><b>\n\n</b></span><span style="color:#00ffff;">&quot;</span>;<br />
<span style="color:#ffff00;">&nbsp;37 </span><br />
<span style="color:#ffff00;">&nbsp;38 </span><span style="color:#cc6600;"><b># Imprime o array @repteis</b></span><br />
<span style="color:#ffff00;">&nbsp;39 </span><span style="color:#00ffff;"><b>@repteis</b></span>&nbsp;= (<span style="color:#00ffff;">'</span><span style="color:#00ffff;">jacaré</span><span style="color:#00ffff;">'</span>, <span style="color:#00ffff;">'</span><span style="color:#00ffff;">tartaruga</span><span style="color:#00ffff;">'</span>, <span style="color:#00ffff;">'</span><span style="color:#00ffff;">lagarto</span><span style="color:#00ffff;">'</span>);<br />
<span style="color:#ffff00;">&nbsp;40 </span><span style="color:#ffff00;"><b>print</b></span>&nbsp;<span style="color:#00ffff;">&quot;</span><span style="color:#00ffff;">Repteis: </span><span style="color:#ff6060;"><b>\n</b></span><span style="color:#00ffff;">&quot;</span>;<br />
<span style="color:#ffff00;">&nbsp;41 </span><span style="color:#ffff00;"><b>foreach</b></span>&nbsp;(<span style="color:#00ffff;"><b>@repteis</b></span>){<br />
<span style="color:#ffff00;">&nbsp;42 </span>&nbsp;&nbsp;<span style="color:#ffff00;"><b>print</b></span>&nbsp;<span style="color:#00ffff;">&quot;</span><span style="color:#00ffff;">- </span><span style="color:#00ffff;"><b>$_</b></span><span style="color:#00ffff;">&nbsp;</span><span style="color:#ff6060;"><b>\n</b></span><span style="color:#00ffff;">&quot;</span>;<br />
<span style="color:#ffff00;">&nbsp;43 </span>}<br />
<span style="color:#ffff00;">&nbsp;44 </span><span style="color:#ffff00;"><b>print</b></span>&nbsp;<span style="color:#00ffff;">&quot;</span><span style="color:#ff6060;"><b>\n\n</b></span><span style="color:#00ffff;">&quot;</span>;<br />
<span style="color:#ffff00;">&nbsp;45 </span><br />
<span style="color:#ffff00;">&nbsp;46 </span><span style="color:#cc6600;"><b># Imprime o array @animais</b></span><br />
<span style="color:#ffff00;">&nbsp;47 </span><span style="color:#00ffff;"><b>@animais</b></span>&nbsp;= (<span style="color:#00ffff;"><b>@mamiferos</b></span>, <span style="color:#00ffff;"><b>@repteis</b></span>); <span style="color:#cc6600;"><b># Obtém um array de de seis elementos.</b></span><br />
<span style="color:#ffff00;">&nbsp;48 </span><span style="color:#ffff00;"><b>print</b></span>&nbsp;<span style="color:#00ffff;">&quot;</span><span style="color:#00ffff;">Animais:</span><span style="color:#ff6060;"><b>\n</b></span><span style="color:#00ffff;">&quot;</span>;<br />
<span style="color:#ffff00;">&nbsp;49 </span><span style="color:#ffff00;"><b>foreach</b></span>(<span style="color:#00ffff;"><b>@animais</b></span>){<br />
<span style="color:#ffff00;">&nbsp;50 </span>&nbsp;&nbsp;<span style="color:#ffff00;"><b>print</b></span>&nbsp;<span style="color:#00ffff;">&quot;</span><span style="color:#00ffff;">- </span><span style="color:#00ffff;"><b>$_</b></span><span style="color:#00ffff;">&nbsp;</span><span style="color:#ff6060;"><b>\n</b></span><span style="color:#00ffff;">&quot;</span>;<br />
<span style="color:#ffff00;">&nbsp;51 </span>}<br />
<span style="color:#ffff00;">&nbsp;52 </span><span style="color:#ffff00;"><b>print</b></span>&nbsp;<span style="color:#00ffff;">&quot;</span><span style="color:#ff6060;"><b>\n\n</b></span><span style="color:#00ffff;">&quot;</span>;<br />
<span style="color:#ffff00;">&nbsp;53 </span><br />
<span style="color:#ffff00;">&nbsp;54 </span><span style="color:#cc6600;"><b># Imprime os conteúdos do array atribuido as variáveis scalar</b></span><br />
<span style="color:#ffff00;">&nbsp;55 </span>(<span style="color:#00ffff;"><b>$carnivoro</b></span>, <span style="color:#00ffff;"><b>$herbivoro</b></span>, <span style="color:#00ffff;"><b>$onivoro</b></span>) = <span style="color:#00ffff;"><b>@repteis</b></span>;<br />
<span style="color:#ffff00;">&nbsp;56 </span><span style="color:#ffff00;"><b>print</b></span>&nbsp;<span style="color:#00ffff;">&quot;</span><span style="color:#00ffff;">Carnivoro: </span><span style="color:#00ffff;"><b>$carnivoro</b></span><span style="color:#00ffff;">&nbsp;</span><span style="color:#ff6060;"><b>\n</b></span><span style="color:#00ffff;">&quot;</span>;<br />
<span style="color:#ffff00;">&nbsp;57 </span><span style="color:#ffff00;"><b>print</b></span>&nbsp;<span style="color:#00ffff;">&quot;</span><span style="color:#00ffff;">Herbivoro: </span><span style="color:#00ffff;"><b>$herbivoro</b></span><span style="color:#00ffff;">&nbsp;</span><span style="color:#ff6060;"><b>\n</b></span><span style="color:#00ffff;">&quot;</span>;<br />
<span style="color:#ffff00;">&nbsp;58 </span><span style="color:#ffff00;"><b>print</b></span>&nbsp;<span style="color:#00ffff;">&quot;</span><span style="color:#00ffff;">Onivoro: </span><span style="color:#00ffff;"><b>$onivoro</b></span><span style="color:#00ffff;">&nbsp;</span><span style="color:#ff6060;"><b>\n</b></span><span style="color:#00ffff;">&quot;</span>;<br />
<span style="color:#ffff00;">&nbsp;59 </span><br />
<span style="color:#ffff00;">&nbsp;60 </span><span style="color:#ffff00;"><b>print</b></span>&nbsp;<span style="color:#00ffff;">&quot;</span><span style="color:#ff6060;"><b>\n\n</b></span><span style="color:#00ffff;">&quot;</span>;<br />
<span style="color:#ffff00;">&nbsp;61 </span><br />
<span style="color:#ffff00;">&nbsp;62 </span><span style="color:#cc6600;"><b># Imprime urso</b></span><br />
<span style="color:#ffff00;">&nbsp;63 </span><span style="color:#ffff00;"><b>print</b></span>&nbsp;<span style="color:#00ffff;">&quot;</span><span style="color:#00ffff;">Imprime o 3º elemento do array animais: </span><span style="color:#00ffff;">&quot;</span>;<br />
<span style="color:#ffff00;">&nbsp;64 </span><span style="color:#ffff00;"><b>print</b></span>&nbsp;<span style="color:#00ffff;"><b>$animais</b></span>[<span style="color:#ff40ff;"><b>2</b></span>];<br />
<span style="color:#ffff00;">&nbsp;65 </span><br />
<span style="color:#ffff00;">&nbsp;66 </span><span style="color:#ffff00;"><b>print</b></span>&nbsp;<span style="color:#00ffff;">&quot;</span><span style="color:#ff6060;"><b>\n\n</b></span><span style="color:#00ffff;">&quot;</span>;<br />
<span style="color:#ffff00;">&nbsp;67 </span><br />
<span style="color:#ffff00;">&nbsp;68 </span><span style="color:#cc6600;"><b># Imprime Elefante</b></span><br />
<span style="color:#ffff00;">&nbsp;69 </span><span style="color:#ffff00;"><b>print</b></span>&nbsp;<span style="color:#00ffff;">&quot;</span><span style="color:#00ffff;">Paquiderme: </span><span style="color:#00ffff;">&quot;</span>;<br />
<span style="color:#ffff00;">&nbsp;70 </span><span style="color:#00ffff;"><b>$paquiderme</b></span>&nbsp;= <span style="color:#00ffff;"><b>$mamiferos</b></span>[<span style="color:#ff40ff;"><b>1</b></span>];<br />
<span style="color:#ffff00;">&nbsp;71 </span><span style="color:#ffff00;"><b>print</b></span>&nbsp;<span style="color:#00ffff;"><b>$paquiderme</b></span>;<br />
<span style="color:#ffff00;">&nbsp;72 </span><br />
<span style="color:#ffff00;">&nbsp;73 </span><span style="color:#ffff00;"><b>print</b></span>&nbsp;<span style="color:#00ffff;">&quot;</span><span style="color:#ff6060;"><b>\n\n</b></span><span style="color:#00ffff;">&quot;</span>;<br />
<span style="color:#ffff00;">&nbsp;74 </span><br />
<span style="color:#ffff00;">&nbsp;75 </span><span style="color:#cc6600;"><b># Imprime Tartaruga</b></span><br />
<span style="color:#ffff00;">&nbsp;76 </span><span style="color:#ffff00;"><b>print</b></span>&nbsp;<span style="color:#00ffff;">&quot;</span><span style="color:#00ffff;">Réptil marítimo: </span><span style="color:#00ffff;">&quot;</span>;<br />
<span style="color:#ffff00;">&nbsp;77 </span><span style="color:#00ffff;"><b>$maritimo</b></span>&nbsp;= <span style="color:#00ffff;"><b>$repteis</b></span>[<span style="color:#ff40ff;"><b>-2</b></span>];<br />
<span style="color:#ffff00;">&nbsp;78 </span><span style="color:#ffff00;"><b>print</b></span>&nbsp;<span style="color:#00ffff;"><b>$maritimo</b></span>;<br />
<span style="color:#ffff00;">&nbsp;79 </span><br />
<span style="color:#ffff00;">&nbsp;80 </span><span style="color:#ffff00;"><b>print</b></span>&nbsp;<span style="color:#00ffff;">&quot;</span><span style="color:#ff6060;"><b>\n\n</b></span><span style="color:#00ffff;">&quot;</span>;<br />
<span style="color:#ffff00;">&nbsp;81 </span><br />
<span style="color:#ffff00;">&nbsp;82 </span><span style="color:#cc6600;"><b># Imprime o tamanho do array</b></span><br />
<span style="color:#ffff00;">&nbsp;83 </span><span style="color:#00ffff;"><b>$qtde</b></span>&nbsp;= <span style="color:#00ffff;"><b>@animais</b></span>;<br />
<span style="color:#ffff00;">&nbsp;84 </span><span style="color:#ffff00;"><b>print</b></span>&nbsp;<span style="color:#00ffff;">&quot;</span><span style="color:#00ffff;">Temos </span><span style="color:#00ffff;"><b>$qtde</b></span><span style="color:#00ffff;">&nbsp;animais.</span><span style="color:#00ffff;">&quot;</span>;<br />
<span style="color:#ffff00;">&nbsp;85 </span><br />
<span style="color:#ffff00;">&nbsp;86 </span><span style="color:#ffff00;"><b>print</b></span>&nbsp;<span style="color:#00ffff;">&quot;</span><span style="color:#ff6060;"><b>\n\n</b></span><span style="color:#00ffff;">&quot;</span>;<br />
<span style="color:#ffff00;">&nbsp;87 </span><br />
<span style="color:#ffff00;">&nbsp;88 </span><span style="color:#cc6600;"><b># Mostra a diferença entre lista e array</b></span><br />
<span style="color:#ffff00;">&nbsp;89 </span><span style="color:#00ffff;"><b>$contador</b></span>&nbsp;= <span style="color:#00ffff;"><b>@repteis</b></span>; <span style="color:#cc6600;"><b># O conteúdo de $contador é 3</b></span><br />
<span style="color:#ffff00;">&nbsp;90 </span><span style="color:#ffff00;"><b>print</b></span>&nbsp;<span style="color:#00ffff;">&quot;</span><span style="color:#00ffff;">Temos </span><span style="color:#00ffff;"><b>$contador</b></span><span style="color:#00ffff;">&nbsp;repteis </span><span style="color:#ff6060;"><b>\n</b></span><span style="color:#00ffff;">&quot;</span>;<br />
<span style="color:#ffff00;">&nbsp;91 </span><span style="color:#cc6600;"><b>=comment</b></span><br />
<span style="color:#ffff00;">&nbsp;92 </span><span style="color:#cc6600;"><b>&nbsp;&nbsp;O conteúdo de $ultimo é 'urso' e apresenta uma mensagem de erro,</b></span><br />
<span style="color:#ffff00;">&nbsp;93 </span><span style="color:#cc6600;"><b>&nbsp;&nbsp;pois está sendo atribuido somente o último item, o correto é usar um array para receber a lista.</b></span><br />
<span style="color:#ffff00;">&nbsp;94 </span><span style="color:#cc6600;"><b>=cut</b></span><br />
<span style="color:#ffff00;">&nbsp;95 </span><span style="color:#00ffff;"><b>$ultimo</b></span>&nbsp;= (<span style="color:#00ffff;">'</span><span style="color:#00ffff;">macaco</span><span style="color:#00ffff;">'</span>, <span style="color:#00ffff;">'</span><span style="color:#00ffff;">usro</span><span style="color:#00ffff;">'</span>);<br />
<span style="color:#ffff00;">&nbsp;96 </span><span style="color:#ffff00;"><b>print</b></span>&nbsp;<span style="color:#00ffff;">&quot;</span><span style="color:#00ffff;">Último item da lista: </span><span style="color:#00ffff;"><b>$ultimo</b></span><span style="color:#00ffff;">&quot;</span>;<br />
<span style="color:#ffff00;">&nbsp;97 </span><br />
<span style="color:#ffff00;">&nbsp;98 </span><span style="color:#ffff00;"><b>print</b></span>&nbsp;<span style="color:#00ffff;">&quot;</span><span style="color:#ff6060;"><b>\n\n</b></span><span style="color:#00ffff;">&quot;</span>;<br />
<span style="color:#ffff00;">&nbsp;99 </span><br />
<span style="color:#ffff00;">100 </span><span style="color:#cc6600;"><b># Push - Acrescenta os elementos da lista ao final do array</b></span><br />
<span style="color:#ffff00;">101 </span><span style="color:#ffff00;"><b>push</b></span>&nbsp;<span style="color:#00ffff;"><b>@repteis</b></span>, (<span style="color:#00ffff;">'</span><span style="color:#00ffff;">cobra</span><span style="color:#00ffff;">'</span>, <span style="color:#00ffff;">'</span><span style="color:#00ffff;">iguana</span><span style="color:#00ffff;">'</span>, <span style="color:#00ffff;">'</span><span style="color:#00ffff;">camaleão</span><span style="color:#00ffff;">'</span>);<br />
<span style="color:#ffff00;">102 </span><span style="color:#ffff00;"><b>print</b></span>&nbsp;<span style="color:#00ffff;">&quot;</span><span style="color:#00ffff;">Mais repteis: </span><span style="color:#ff6060;"><b>\n</b></span><span style="color:#00ffff;">&quot;</span>;<br />
<span style="color:#ffff00;">103 </span><span style="color:#ffff00;"><b>foreach</b></span>&nbsp;(<span style="color:#00ffff;"><b>@repteis</b></span>){<br />
<span style="color:#ffff00;">104 </span>&nbsp;&nbsp;<span style="color:#ffff00;"><b>print</b></span>&nbsp;<span style="color:#00ffff;">&quot;</span><span style="color:#00ffff;">- </span><span style="color:#00ffff;"><b>$_</b></span><span style="color:#00ffff;">&nbsp;</span><span style="color:#ff6060;"><b>\n</b></span><span style="color:#00ffff;">&quot;</span>;<br />
<span style="color:#ffff00;">105 </span>}<br />
<span style="color:#ffff00;">106 </span><br />
<span style="color:#ffff00;">107 </span><span style="color:#ffff00;"><b>print</b></span>&nbsp;<span style="color:#00ffff;">&quot;</span><span style="color:#ff6060;"><b>\n\n</b></span><span style="color:#00ffff;">&quot;</span>;<br />
<span style="color:#ffff00;">108 </span><br />
<span style="color:#ffff00;">109 </span><span style="color:#cc6600;"><b># pop - Remove e retorna o último elementos do array</b></span><br />
<span style="color:#ffff00;">110 </span><span style="color:#00ffff;"><b>$resultado</b></span>&nbsp;= <span style="color:#ffff00;"><b>pop</b></span>&nbsp;<span style="color:#00ffff;"><b>@mamiferos</b></span>;<br />
<span style="color:#ffff00;">111 </span><span style="color:#ffff00;"><b>print</b></span>&nbsp;<span style="color:#00ffff;">&quot;</span><span style="color:#00ffff;">Foi retirado o </span><span style="color:#00ffff;"><b>$resultado</b></span><span style="color:#00ffff;">&nbsp;da lista de mamiferos:</span><span style="color:#ff6060;"><b>\n</b></span><span style="color:#00ffff;">&quot;</span>;<br />
<span style="color:#ffff00;">112 </span><span style="color:#ffff00;"><b>foreach</b></span>&nbsp;(<span style="color:#00ffff;"><b>@mamiferos</b></span>){<br />
<span style="color:#ffff00;">113 </span>&nbsp;&nbsp;<span style="color:#ffff00;"><b>print</b></span>&nbsp;<span style="color:#00ffff;">&quot;</span><span style="color:#00ffff;">- </span><span style="color:#00ffff;"><b>$_</b></span><span style="color:#00ffff;">&nbsp;</span><span style="color:#ff6060;"><b>\n</b></span><span style="color:#00ffff;">&quot;</span>;<br />
<span style="color:#ffff00;">114 </span>}<br />
<span style="color:#ffff00;">115 </span><br />
<span style="color:#ffff00;">116 </span><span style="color:#ffff00;"><b>print</b></span>&nbsp;<span style="color:#00ffff;">&quot;</span><span style="color:#ff6060;"><b>\n\n</b></span><span style="color:#00ffff;">&quot;</span>;<br />
<span style="color:#ffff00;">117 </span><br />
<span style="color:#ffff00;">118 </span><span style="color:#cc6600;"><b># shift - Remove e retorna o primeiro elemento do array.</b></span><br />
<span style="color:#ffff00;">119 </span><span style="color:#00ffff;"><b>$resultado</b></span>&nbsp;= <span style="color:#ffff00;"><b>shift</b></span>&nbsp;<span style="color:#00ffff;"><b>@repteis</b></span>;<br />
<span style="color:#ffff00;">120 </span><span style="color:#ffff00;"><b>print</b></span>&nbsp;<span style="color:#00ffff;">&quot;</span><span style="color:#00ffff;">Foi removido o </span><span style="color:#00ffff;"><b>$resultado</b></span><span style="color:#00ffff;">&nbsp;da lista de repteis: </span><span style="color:#ff6060;"><b>\n</b></span><span style="color:#00ffff;">&quot;</span>;<br />
<span style="color:#ffff00;">121 </span><span style="color:#ffff00;"><b>foreach</b></span>&nbsp;(<span style="color:#00ffff;"><b>@repteis</b></span>){<br />
<span style="color:#ffff00;">122 </span>&nbsp;&nbsp;<span style="color:#ffff00;"><b>print</b></span>&nbsp;<span style="color:#00ffff;">&quot;</span><span style="color:#00ffff;">- </span><span style="color:#00ffff;"><b>$_</b></span><span style="color:#00ffff;">&nbsp;</span><span style="color:#ff6060;"><b>\n</b></span><span style="color:#00ffff;">&quot;</span>;<br />
<span style="color:#ffff00;">123 </span>}<br />
<span style="color:#ffff00;">124 </span><br />
<span style="color:#ffff00;">125 </span><span style="color:#ffff00;"><b>print</b></span>&nbsp;<span style="color:#00ffff;">&quot;</span><span style="color:#ff6060;"><b>\n\n</b></span><span style="color:#00ffff;">&quot;</span>;<br />
<span style="color:#ffff00;">126 </span><br />
<span style="color:#ffff00;">127 </span><span style="color:#cc6600;"><b># unshift - Acrescenta os elementos da lista na frente do array.</b></span><br />
<span style="color:#ffff00;">128 </span><span style="color:#ffff00;"><b>unshift</b></span>&nbsp;<span style="color:#00ffff;"><b>@animais</b></span>, (<span style="color:#00ffff;">'</span><span style="color:#00ffff;">arara</span><span style="color:#00ffff;">'</span>, <span style="color:#00ffff;">'</span><span style="color:#00ffff;">pavao</span><span style="color:#00ffff;">'</span>, <span style="color:#00ffff;">'</span><span style="color:#00ffff;">tucano</span><span style="color:#00ffff;">'</span>);<br />
<span style="color:#ffff00;">129 </span><span style="color:#ffff00;"><b>print</b></span>&nbsp;<span style="color:#00ffff;">&quot;</span><span style="color:#00ffff;">Mais animais: </span><span style="color:#ff6060;"><b>\n</b></span><span style="color:#00ffff;">&quot;</span>;<br />
<span style="color:#ffff00;">130 </span><span style="color:#ffff00;"><b>foreach</b></span>&nbsp;(<span style="color:#00ffff;"><b>@animais</b></span>){<br />
<span style="color:#ffff00;">131 </span>&nbsp;&nbsp;<span style="color:#ffff00;"><b>print</b></span>&nbsp;<span style="color:#00ffff;">&quot;</span><span style="color:#00ffff;">- </span><span style="color:#00ffff;"><b>$_</b></span><span style="color:#00ffff;">&nbsp;</span><span style="color:#ff6060;"><b>\n</b></span><span style="color:#00ffff;">&quot;</span>;<br />
<span style="color:#ffff00;">132 </span>}<br />
<span style="color:#ffff00;">133 </span><br />
<span style="color:#ffff00;">134 </span><span style="color:#ffff00;"><b>print</b></span>&nbsp;<span style="color:#00ffff;">&quot;</span><span style="color:#ff6060;"><b>\n\n</b></span><span style="color:#00ffff;">&quot;</span>;<br />
<span style="color:#ffff00;">135 </span><br />
<span style="color:#ffff00;">136 </span><span style="color:#cc6600;"><b>=comment</b></span><br />
<span style="color:#ffff00;">137 </span><span style="color:#cc6600;"><b>&nbsp;&nbsp;splice - Remove e retorna os elementos LENGTH do ARRAY que começa no elemento OFFSET</b></span><br />
<span style="color:#ffff00;">138 </span><span style="color:#cc6600;"><b>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; e os substitui pelos elementos da LIST</b></span><br />
<span style="color:#ffff00;">139 </span><span style="color:#cc6600;"><b>=cut</b></span><br />
<span style="color:#ffff00;">140 </span><span style="color:#ffff00;"><b>splice</b></span>&nbsp;<span style="color:#00ffff;"><b>@animais</b></span>, <span style="color:#ff40ff;"><b>0</b></span>, <span style="color:#ff40ff;"><b>3</b></span>, (<span style="color:#00ffff;">'</span><span style="color:#00ffff;">garça</span><span style="color:#00ffff;">'</span>, <span style="color:#00ffff;">'</span><span style="color:#00ffff;">harpia</span><span style="color:#00ffff;">'</span>, <span style="color:#00ffff;">'</span><span style="color:#00ffff;">gavião</span><span style="color:#00ffff;">'</span>);<br />
<span style="color:#ffff00;">141 </span><span style="color:#ffff00;"><b>print</b></span>&nbsp;<span style="color:#00ffff;">&quot;</span><span style="color:#00ffff;">Alteradas as aves da lista de animais: </span><span style="color:#ff6060;"><b>\n</b></span><span style="color:#00ffff;">&quot;</span>;<br />
<span style="color:#ffff00;">142 </span><span style="color:#ffff00;"><b>foreach</b></span>&nbsp;(<span style="color:#00ffff;"><b>@animais</b></span>){<br />
<span style="color:#ffff00;">143 </span>&nbsp;&nbsp;<span style="color:#ffff00;"><b>print</b></span>&nbsp;<span style="color:#00ffff;">&quot;</span><span style="color:#00ffff;">- </span><span style="color:#00ffff;"><b>$_</b></span><span style="color:#00ffff;">&nbsp;</span><span style="color:#ff6060;"><b>\n</b></span><span style="color:#00ffff;">&quot;</span>;<br />
<span style="color:#ffff00;">144 </span>}<br />
<span style="color:#ffff00;">145 </span><br />
<span style="color:#ffff00;">146 </span><span style="color:#ffff00;"><b>print</b></span>&nbsp;<span style="color:#00ffff;">&quot;</span><span style="color:#ff6060;"><b>\n\n</b></span><span style="color:#00ffff;">&quot;</span>;<br />
<span style="color:#ffff00;">147 </span><br />
<span style="color:#ffff00;">148 </span><span style="color:#cc6600;"><b># map - Executa o código e monta a lista com os valores de retorno sem avaliar se é verdadeiro</b></span><br />
<span style="color:#ffff00;">149 </span><span style="color:#00ffff;"><b>@numeros</b></span>&nbsp;= (<span style="color:#ff40ff;"><b>1.</b></span>.<span style="color:#ff40ff;"><b>10</b></span>);<br />
<span style="color:#ffff00;">150 </span><span style="color:#ffff00;"><b>print</b></span>&nbsp;<span style="color:#00ffff;">&quot;</span><span style="color:#00ffff;">Números inteiros: </span><span style="color:#ff6060;"><b>\n</b></span><span style="color:#00ffff;">&quot;</span>;<br />
<span style="color:#ffff00;">151 </span><span style="color:#ffff00;"><b>foreach</b></span>&nbsp;(<span style="color:#00ffff;"><b>@numeros</b></span>){<br />
<span style="color:#ffff00;">152 </span>&nbsp;&nbsp;<span style="color:#ffff00;"><b>print</b></span>&nbsp;<span style="color:#00ffff;">&quot;</span><span style="color:#00ffff;"><b>$_</b></span><span style="color:#00ffff;">, </span><span style="color:#00ffff;">&quot;</span>;<br />
<span style="color:#ffff00;">153 </span>}<br />
<span style="color:#ffff00;">154 </span><span style="color:#00ffff;"><b>@quadrados</b></span>&nbsp;= <span style="color:#ffff00;"><b>map</b></span>&nbsp;&nbsp;{ <span style="color:#00ffff;"><b>$_</b></span>&nbsp;* <span style="color:#00ffff;"><b>$_</b></span>&nbsp;} <span style="color:#00ffff;"><b>@numeros</b></span>;<br />
<span style="color:#ffff00;">155 </span><span style="color:#ffff00;"><b>print</b></span>&nbsp;<span style="color:#00ffff;">&quot;</span><span style="color:#ff6060;"><b>\n</b></span><span style="color:#00ffff;">O quadrado dos números acima:</span><span style="color:#ff6060;"><b>\n</b></span><span style="color:#00ffff;">&quot;</span>;<br />
<span style="color:#ffff00;">156 </span><span style="color:#ffff00;"><b>foreach</b></span>&nbsp;(<span style="color:#00ffff;"><b>@quadrados</b></span>){<br />
<span style="color:#ffff00;">157 </span>&nbsp;&nbsp;<span style="color:#ffff00;"><b>print</b></span>&nbsp;<span style="color:#00ffff;">&quot;</span><span style="color:#00ffff;"><b>$_</b></span><span style="color:#00ffff;">, </span><span style="color:#00ffff;">&quot;</span>;<br />
<span style="color:#ffff00;">158 </span>}<br />
<span style="color:#ffff00;">159 </span><br />
<span style="color:#ffff00;">160 </span><span style="color:#ffff00;"><b>print</b></span>&nbsp;<span style="color:#00ffff;">&quot;</span><span style="color:#ff6060;"><b>\n\n</b></span><span style="color:#00ffff;">&quot;</span>;<br />
<span style="color:#ffff00;">161 </span><br />
<span style="color:#ffff00;">162 </span><span style="color:#cc6600;"><b># grep - Executa o código e monta a lista com os valores avaliando se o código retornado é verdadeiro.</b></span><br />
<span style="color:#ffff00;">163 </span><span style="color:#ffff00;"><b>print</b></span>&nbsp;<span style="color:#00ffff;">&quot;</span><span style="color:#00ffff;">Mosta os números ímpares:</span><span style="color:#ff6060;"><b>\n</b></span><span style="color:#00ffff;">&quot;</span>;<br />
<span style="color:#ffff00;">164 </span><span style="color:#00ffff;"><b>@impares</b></span>&nbsp;= <span style="color:#ffff00;"><b>grep</b></span>&nbsp;{ <span style="color:#00ffff;"><b>$_</b></span>&nbsp;% <span style="color:#ff40ff;"><b>2</b></span>&nbsp;} <span style="color:#00ffff;"><b>@numeros</b></span>;<br />
<span style="color:#ffff00;">165 </span><span style="color:#ffff00;"><b>foreach</b></span>&nbsp;(<span style="color:#00ffff;"><b>@impares</b></span>){<br />
<span style="color:#ffff00;">166 </span>&nbsp;&nbsp;<span style="color:#ffff00;"><b>print</b></span>&nbsp;<span style="color:#00ffff;">&quot;</span><span style="color:#00ffff;"><b>$_</b></span><span style="color:#00ffff;">&nbsp;, </span><span style="color:#00ffff;">&quot;</span>;<br />
<span style="color:#ffff00;">167 </span>}<br />
<span style="color:#ffff00;">168 </span><br />
<span style="color:#ffff00;">169 </span><span style="color:#ffff00;"><b>print</b></span>&nbsp;<span style="color:#00ffff;">&quot;</span><span style="color:#ff6060;"><b>\n\n</b></span><span style="color:#00ffff;">&quot;</span>;<br />
</code>
</div>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/iniciandoemperl.wordpress.com/132/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/iniciandoemperl.wordpress.com/132/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/iniciandoemperl.wordpress.com/132/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/iniciandoemperl.wordpress.com/132/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/iniciandoemperl.wordpress.com/132/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/iniciandoemperl.wordpress.com/132/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/iniciandoemperl.wordpress.com/132/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/iniciandoemperl.wordpress.com/132/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/iniciandoemperl.wordpress.com/132/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/iniciandoemperl.wordpress.com/132/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/iniciandoemperl.wordpress.com/132/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/iniciandoemperl.wordpress.com/132/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/iniciandoemperl.wordpress.com/132/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/iniciandoemperl.wordpress.com/132/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=iniciandoemperl.wordpress.com&amp;blog=5432101&amp;post=132&amp;subd=iniciandoemperl&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://iniciandoemperl.wordpress.com/2008/11/24/instrucoes-basicas-de-perl/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/47fbf8a92a237c006a82e8b63fd155b5?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">dyegoreisa</media:title>
		</media:content>
	</item>
		<item>
		<title>Variáveis do GET e POST no Perl</title>
		<link>http://iniciandoemperl.wordpress.com/2008/11/18/variaveis-get-post/</link>
		<comments>http://iniciandoemperl.wordpress.com/2008/11/18/variaveis-get-post/#comments</comments>
		<pubDate>Tue, 18 Nov 2008 15:13:09 +0000</pubDate>
		<dc:creator>Lawrence</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://iniciandoemperl.wordpress.com/?p=104</guid>
		<description><![CDATA[Dando continuidade à tentativa de fazer algo web com Perl, acho que o próximo passo pode ser receber parâmetros vindos de um formulário ou url. O primeiro script de teste ficou assim: use strict; use warnings; &#160; my $r = shift; &#160; $r-&#62;content_type(&#39;text/html&#39;); &#160; print &#39;&#60;h1&#62;Funcionou!&#60;/h1&#62;&#39;; O script é executado pelo modperl como se fosse [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=iniciandoemperl.wordpress.com&amp;blog=5432101&amp;post=104&amp;subd=iniciandoemperl&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Dando continuidade à tentativa de fazer algo web com Perl, acho que o próximo passo pode ser receber parâmetros vindos de um formulário ou url.</p>
<p>O <a href="/o-primeiro-script-em-perl/">primeiro script de teste</a> ficou assim:</p>
<p><code style="display:block;border-left:3px solid #ccc;padding:.25em;"><span style="color:#a52a2a;"><span style="color:#a020f0;">use strict</span>;<br />
<span style="color:#a020f0;">use warnings</span>;<br />
&nbsp;<br />
<span style="color:#a52a2a;">my</span> <span style="color:#008b8b;">$r</span> = <span style="color:#a52a2a;">shift</span>;<br />
&nbsp;<br />
<span style="color:#008b8b;">$r</span><span style="color:#008b8b;">-&gt;content_type</span>(<span style="color:#ff00ff;">&#39;</span><span style="color:#ff00ff;">text/html</span><span style="color:#ff00ff;">&#39;</span>);<br />
&nbsp;<br />
<span style="color:#a52a2a;">print</span> <span style="color:#ff00ff;">&#39;</span><span style="color:#ff00ff;">&lt;h1&gt;Funcionou!&lt;/h1&gt;</span><span style="color:#ff00ff;">&#39;</span>;</code></p>
<p>O script é executado pelo modperl como se fosse uma função e recebe como parâmetro um objeto do tipo Apache2::RequestRec. Quando fazemos o shift, este parâmetro passa para a variável local $r.</p>
<p>Para ter acesso aos dados submetidos por GET ou POST de forma legível, precisamos instanciar um objeto Apache2::Request, que recebe no construtor o RequestRec da requisição atual:</p>
<p><code style="display:block;border-left:3px solid #ccc;padding:.25em;"><span style="color:#a020f0;">use strict</span>;<br />
<span style="color:#a020f0;">use warnings</span>;<br />
&nbsp;<br />
<span style="background-color:#ffd;"><strong><span style="color:#a020f0;">use </span>Apache2::Request;</strong></span><br />
&nbsp;<br />
<span style="color:#a52a2a;">my</span> <span style="color:#008b8b;">$r</span> = <span style="color:#a52a2a;">shift</span>;<br />
<span style="background-color:#ffd;"><strong><span style="color:#a52a2a;">my</span> <span style="color:#008b8b;">$req</span> = Apache2::Request-&gt;<span style="color:#a52a2a;">new</span>(<span style="color:#008b8b;">$r</span>);</strong></span><br />
&nbsp;<br />
<span style="color:#008b8b;">$r</span><span style="color:#008b8b;">-&gt;content_type</span>(<span style="color:#ff00ff;">&#39;</span><span style="color:#ff00ff;">text/html</span><span style="color:#ff00ff;">&#39;</span>);<br />
&nbsp;<br />
<span style="color:#a52a2a;">print</span> <span style="color:#ff00ff;">&#39;</span><span style="color:#ff00ff;">&lt;h1&gt;Funcionou!&lt;/h1&gt;</span><span style="color:#ff00ff;">&#39;</span>;</code></p>
<p>Os parâmetros passados, tanto por GET quanto por POST, <strong>estão disponíveis pelo accessor <em>param</em></strong>:</p>
<p><code style="display:block;border-left:3px solid #ccc;padding:.25em;"><span style="color:#a020f0;">use strict</span>;<br />
<span style="color:#a020f0;">use warnings</span>;<br />
&nbsp;<br />
<span style="color:#a020f0;">use </span>Apache2::Request;<br />
&nbsp;<br />
<span style="color:#a52a2a;">my</span> <span style="color:#008b8b;">$r</span> = <span style="color:#a52a2a;">shift</span>;<br />
<span style="color:#a52a2a;">my</span> <span style="color:#008b8b;">$req</span> = Apache2::Request-&gt;<span style="color:#a52a2a;">new</span>(<span style="color:#008b8b;">$r</span>);<br />
&nbsp;<br />
<span style="color:#008b8b;">$r</span><span style="color:#008b8b;">-&gt;content_type</span>(<span style="color:#ff00ff;">&#39;</span><span style="color:#ff00ff;">text/html</span><span style="color:#ff00ff;">&#39;</span>);<br />
&nbsp;<br />
<span style="color:#a52a2a;">print</span> <span style="color:#ff00ff;">&#39;</span><span style="color:#ff00ff;">&lt;h1&gt;Funcionou!&lt;/h1&gt;</span><span style="color:#ff00ff;">&#39;</span>;<br />
&nbsp;<br />
<span style="background-color:#ffd;"><strong><span style="color:#a52a2a;">print</span> <span style="color:#008b8b;">$req</span><span style="color:#008b8b;">-&gt;param</span>(<span style="color:#ff00ff;">&#39;</span><span style="color:#ff00ff;">variavel_por_get</span><span style="color:#ff00ff;">&#39;</span>);<br />
<span style="color:#a52a2a;">print</span> <span style="color:#008b8b;">$req</span><span style="color:#008b8b;">-&gt;param</span>(<span style="color:#ff00ff;">&#39;</span><span style="color:#ff00ff;">variavel_por_post</span><span style="color:#ff00ff;">&#39;</span>);</strong></span></code></p>
<p>Caso o nome da variável não seja passado para o accessor, ele retorna um array que pode ser iterado, como neste caso:</p>
<p><code style="display:block;border-left:3px solid #ccc;padding:.25em;"><span style="color:#a020f0;">use strict</span>;<br />
<span style="color:#a020f0;">use warnings</span>;<br />
&nbsp;<br />
<span style="color:#a020f0;">use </span>Apache2::Request;<br />
&nbsp;<br />
<span style="color:#a52a2a;">my</span> <span style="color:#008b8b;">$r</span> = <span style="color:#a52a2a;">shift</span>;<br />
<span style="color:#a52a2a;">my</span> <span style="color:#008b8b;">$req</span> = Apache2::Request-&gt;<span style="color:#a52a2a;">new</span>(<span style="color:#008b8b;">$r</span>);<br />
&nbsp;<br />
<span style="color:#008b8b;">$r</span><span style="color:#008b8b;">-&gt;content_type</span>(<span style="color:#ff00ff;">&#39;</span><span style="color:#ff00ff;">text/html</span><span style="color:#ff00ff;">&#39;</span>);<br />
&nbsp;<br />
<span style="background-color:#ffc;"><strong><span style="color:#a52a2a;">foreach</span> <span style="color:#a52a2a;">my</span> <span style="color:#008b8b;">$param</span> ( <span style="color:#008b8b;">$req</span><span style="color:#008b8b;">-&gt;param</span> ) {<br />
&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:#a52a2a;">print</span> <span style="color:#ff00ff;">&quot;</span><span style="color:#008b8b;">$param</span><span style="color:#ff00ff;">: </span><span style="color:#ff00ff;">&quot;</span>, <span style="color:#008b8b;">$req</span><span style="color:#008b8b;">-&gt;param</span>(<span style="color:#008b8b;">$param</span>), <span style="color:#ff00ff;">&quot;</span><span style="color:#ff00ff;">&lt;br /&gt;</span><span style="color:#ff00ff;">&quot;</span>;<br />
}</strong></span></code></p>
<p>Além do accessor <em>param</em>, <strong>os dados do POST também estão no accessor <em>body</em></strong>. Para acessar uma variável exclusivamente submetida por POST fica assim:</p>
<p><code style="display:block;border-left:3px solid #ccc;padding:.25em;"><span style="color:#a020f0;">use strict</span>;<br />
<span style="color:#a020f0;">use warnings</span>;<br />
&nbsp;<br />
<span style="color:#a020f0;">use </span>Apache2::Request;<br />
&nbsp;<br />
<span style="color:#a52a2a;">my</span> <span style="color:#008b8b;">$r</span> = <span style="color:#a52a2a;">shift</span>;<br />
<span style="color:#a52a2a;">my</span> <span style="color:#008b8b;">$req</span> = Apache2::Request-&gt;<span style="color:#a52a2a;">new</span>(<span style="color:#008b8b;">$r</span>);<br />
&nbsp;<br />
<span style="color:#008b8b;">$r</span><span style="color:#008b8b;">-&gt;content_type</span>(<span style="color:#ff00ff;">&#39;</span><span style="color:#ff00ff;">text/html</span><span style="color:#ff00ff;">&#39;</span>);<br />
&nbsp;<br />
<span style="color:#a52a2a;">print</span> <span style="color:#ff00ff;">&#39;</span><span style="color:#ff00ff;">&lt;h1&gt;Funcionou!&lt;/h1&gt;</span><span style="color:#ff00ff;">&#39;</span>;<br />
&nbsp;<br />
<span style="background-color:#ffd;"><strong><span style="color:#a52a2a;">print</span> <span style="color:#008b8b;">$req</span><span style="color:#008b8b;">-&gt;body</span>(<span style="color:#ff00ff;">&#39;</span><span style="color:#ff00ff;">somente_variavel_por_post</span><span style="color:#ff00ff;">&#39;</span>);</strong></span></code></p>
<p>Assim como no <em>param</em>, também é possível ter um array com o nome dos parâmetros passados por POST ao acessar o <em>body</em> sem nenhum argumento.</p>
<p>E é isso.</p>
<p>Referências:</p>
<ul>
<li><a href="http://search.cpan.org/~joesuf/libapreq2-2.08/glue/perl/lib/Apache2/Request.pm#param">Apache2::Request</a></li>
<li><a href="http://perl.apache.org/docs/2.0/api/Apache2/RequestRec.html">Apache2::RequestRec</a></li>
</ul>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/iniciandoemperl.wordpress.com/104/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/iniciandoemperl.wordpress.com/104/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/iniciandoemperl.wordpress.com/104/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/iniciandoemperl.wordpress.com/104/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/iniciandoemperl.wordpress.com/104/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/iniciandoemperl.wordpress.com/104/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/iniciandoemperl.wordpress.com/104/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/iniciandoemperl.wordpress.com/104/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/iniciandoemperl.wordpress.com/104/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/iniciandoemperl.wordpress.com/104/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/iniciandoemperl.wordpress.com/104/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/iniciandoemperl.wordpress.com/104/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/iniciandoemperl.wordpress.com/104/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/iniciandoemperl.wordpress.com/104/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=iniciandoemperl.wordpress.com&amp;blog=5432101&amp;post=104&amp;subd=iniciandoemperl&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://iniciandoemperl.wordpress.com/2008/11/18/variaveis-get-post/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/b8b6b794629f989d04758cfd29d92318?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Lawrence</media:title>
		</media:content>
	</item>
		<item>
		<title>Parâmetros de funções em Perl</title>
		<link>http://iniciandoemperl.wordpress.com/2008/11/14/parametros-de-funcoes-em-perl/</link>
		<comments>http://iniciandoemperl.wordpress.com/2008/11/14/parametros-de-funcoes-em-perl/#comments</comments>
		<pubDate>Fri, 14 Nov 2008 11:27:23 +0000</pubDate>
		<dc:creator>Lawrence</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://iniciandoemperl.wordpress.com/?p=94</guid>
		<description><![CDATA[Uma coisa que ainda me irrita um pouco é a falta de assinatura de funções em Perl. Quando eu já estava me acostumando com parâmetros tipados e começava a desejar type hint para retorno de métodos, no Perl parece que não temos nada disso. Os argumentos de funções chegam no array @_. Dentro da função [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=iniciandoemperl.wordpress.com&amp;blog=5432101&amp;post=94&amp;subd=iniciandoemperl&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Uma coisa que ainda me irrita um pouco é a falta de assinatura de funções em Perl. Quando eu já estava me acostumando com parâmetros <em>tipados</em> e começava a desejar type hint para retorno de métodos, no Perl parece que não temos nada disso.</p>
<p><strong>Os argumentos de funções chegam no array @_.</strong> Dentro da função você precisa pegar os argumentos dessa lista e fazer as validações necessárias.</p>
<p>Exemplo:<br />
<code style="display:block;background-color:#eaeaea;border:1px solid #ccc;padding:1em;">sub escrever_dados {<br />
&nbsp;&nbsp;&nbsp;&nbsp;my ($nome, $cidade) = @_;<br />
&nbsp;&nbsp;&nbsp;&nbsp;print "Nome: $nome, cidade: $cidade\n";<br />
}<br />
&nbsp;<br />
escrever_dados('Mary', 'Rio de Janeiro');</code></p>
<p>A função nesse caso recebe uma lista e os seus elementos são passados para as variáveis locais.</p>
<p>O que mais me incomoda é que <strong>parâmetros a mais ou a menos na chamada à função não resultam em erro algum</strong>. O que pode ser feito é validar dentro da função a quantidade e tipo dos parâmetros, mas torna o código extremamente repetitivo e mais sujeito a erros.<br />
<code style="display:block;background-color:#eaeaea;border:1px solid #ccc;padding:1em;">sub escrever_dados {<br />
&nbsp;&nbsp;&nbsp;&nbsp;if (scalar @_ != 2) {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;print "Função espera 2 argumentos\n";<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return 0;<br />
&nbsp;&nbsp;&nbsp;&nbsp;}<br />
&nbsp;&nbsp;&nbsp;&nbsp;my ($nome, $cidade) = @_;<br />
&nbsp;&nbsp;&nbsp;&nbsp;print "Nome: $nome, cidade: $cidade\n";<br />
}<br />
&nbsp;<br />
escrever_dados('Mary', 'Rio de Janeiro', 'Vai dar erro');<br />
escrever_dados('Também vai dar erro');<br />
escrever_dados(); # Lista vazia (scalar 0) também dá erro</code></p>
<p>A não ser que alguém conheça uma forma melhor. Alguém? Alguém?</p>
<p>Como o @_ é uma lista normal, qualquer forma de acesso é válida:<br />
<code style="display:block;background-color:#eaeaea;border:1px solid #ccc;padding:1em;">sub saudacao {<br />
&nbsp;&nbsp;&nbsp;&nbsp;my $nome = shift;<br />
&nbsp;&nbsp;&nbsp;&nbsp;print "Oi, $nome!\n";<br />
}<br />
&nbsp;<br />
saudacao('Mundo');</code><br />
<code style="display:block;background-color:#eaeaea;border:1px solid #ccc;padding:1em;">sub erro {<br />
&nbsp;&nbsp;&nbsp;&nbsp;die "Erro inesperado $_[0]\n";<br />
}<br />
&nbsp;<br />
erro('Valor inválido!');</code></p>
<p>Mas ainda acho que associar as variáveis na forma <em>my ($nome, $cidade) = @_;</em> fica mais claro. Exceto quando estamos trabalhando com objetos, aí acho mais claro fazer <em>my $self = shift;</em> antes. Mas aí já é outra história.</p>
<p>Divirta-se.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/iniciandoemperl.wordpress.com/94/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/iniciandoemperl.wordpress.com/94/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/iniciandoemperl.wordpress.com/94/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/iniciandoemperl.wordpress.com/94/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/iniciandoemperl.wordpress.com/94/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/iniciandoemperl.wordpress.com/94/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/iniciandoemperl.wordpress.com/94/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/iniciandoemperl.wordpress.com/94/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/iniciandoemperl.wordpress.com/94/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/iniciandoemperl.wordpress.com/94/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/iniciandoemperl.wordpress.com/94/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/iniciandoemperl.wordpress.com/94/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/iniciandoemperl.wordpress.com/94/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/iniciandoemperl.wordpress.com/94/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=iniciandoemperl.wordpress.com&amp;blog=5432101&amp;post=94&amp;subd=iniciandoemperl&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://iniciandoemperl.wordpress.com/2008/11/14/parametros-de-funcoes-em-perl/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/b8b6b794629f989d04758cfd29d92318?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Lawrence</media:title>
		</media:content>
	</item>
	</channel>
</rss>
