Acme-PM-Barcelona
view release on metacpan or search on metacpan
lib/Acme/PM/Barcelona/12x5_ca.pod view on Meta::CPAN
En les distribucions basades en C<Module::Build>:
perl Build.PL
perl Build
perl Build test
=head2 WWW::Mechanize
=head3 Robots web
Amb Perl es poden escriure programes que naveguen per la web.
=head3 La pà gina d'inici de La Vanguardia
Aquest programa descarrega la pà gina web de La Vanguardia.
use WWW::Mechanize;
$mech = WWW::Mechanize->new;
$mech->get("http://www.lavanguardia.es");
print $mech->content;
=head3 Una cerca a Google
Aquest programa cerca la paraula "Perl" a Google.
use WWW::Mechanize;
$mech = WWW::Mechanize->new;
$mech->get('http://www.google.com');
$mech->field('q', 'Perl');
$mech->click('btnG');
print $mech->content;
=head3 L'extracte d'un compte de La Caixa
Aquest programa treu per pantalla la primera pà gina de l'extracte
d'un compte de La Caixa.
use WWW::Mechanize;
$user = 'el-teu-dni';
$password = 'contrasenya';
# fes-te passar per un iPhone
$iphone = "Mozilla/5.0 (iPhone; U; ...";
$mech = WWW::Mechanize->new(agent => $iphone);
=for ToBeUsedInTheFuture =head3 L'extracte d'un compte de La Caixa (2)
# home page
$mech->get(
"http://lacaixa.mobi/apl/index_es.html?select=true"
);
$mech->follow_link(url_regex => qr/es-mobi-menu-lo/);
# fes login
$mech->submit_form(
form_name => "formu",
fields => {
E => $user,
B => $password
}
);
=for ToBeUsedInTheFuture =head3 L'extracte d'un compte de La Caixa (3)
# segueix el primer enllac,
$mech->follow_link(tag => 'a', n => 1);
# captura els moviments
($movements) = $mech->content
=~ m{(<ul[^>]*>\s*<li[^>]*>\s*<a.*?</ul>)}i;
$mov_regexp = qr{
<td\s+align="left"> (.+?) </td>
.*?
<font[^>]+> ([\d,-]+) .*? </font>
.*?
<li[^>]+> (\d+/\d+/\d+)
}sx;
=for ToBeUsedInTheFuture =head3 L'extracte d'un compte de La Caixa (4)
print "$1, $2, $3\n"
while $movements =~ /$mov_regexp/g;
# AHORRA EL CAMBIO, -2,10, 06/09/2009
# FRANKFURT PLATJA-, -14,40, 05/09/2009
# DECATHLON ILLA PR, -7,90, 05/09/2009
# CAPRABO, -7,64, 04/09/2009
# GESOIL S.A. LEVAN, -18,88, 04/09/2009
# ...
=head2 Finance::Quote i Cache::FileCache
=head3 Com està el canvi?
Es pot obtenir el canvi actualitzat de la moneda d'arreu del món.
=head3 Conversió de dòlars a euros
use Finance::Quote 1.16;
$quote = Finance::Quote->new();
$ratio = $quote->currency('USD', 'EUR');
print "10 USD = ", 10 * $ratio, " EUR\n";
=head3 Millorem la velocitat amb una còpia temporal
use Cache::FileCache;
use Finance::Quote 1.16;
$cache = Cache::FileCache->new({
default_expires_in => '1 day',
});
lib/Acme/PM/Barcelona/12x5_ca.pod view on Meta::CPAN
use X11::GUITest qw/
StartApp
WaitWindowViewable
SendKeys
/;
StartApp('firefox http://barcelona.pm.org/');
($main_win) = WaitWindowViewable(
'Barcelona Perl Mongers',
undef,
20,
);
=for ToBeUsedInTheFuture =head3 Obrir algunes pà gines web amb el Firefox (2)
@webs = (
'perl.org',
'cpan.org',
);
foreach $url (@webs) {
SendKeys('%(f)t'); # Alt-F, t
sleep(1);
SendKeys('^(l)'); # Ctrl-L
SendKeys('http://www.');
SendKeys($url);
SendKeys('~'); # Intro
sleep(2);
}
=head3 Automatizació d'un editor de text
use X11::GUITest qw/StartApp SendKeys/;
StartApp('gedit');
SendKeys('~~');
SendKeys("Mireu, sense mans!!\n");
sleep(2);
SendKeys("~Amplio la finestra...\n");
sleep(2);
SendKeys('{F11}');
sleep(2);
SendKeys("~...i ara torno a reduir-la\n");
SendKeys('{F11}');
sleep(2);
=head2 Cultura Perl
=head3 Perl Golf
=over 4
=item * El Perl Golf és un divertiment.
=item * Consisteix en resoldre un cert problema en Perl usant el mÃnim
nombre de carà cters possible.
=item * El nom és una conya que ve de l'anglès. Es tracta d'usar el
mÃnim nombre de B<(key)strokes>. Seguint amb l'analogia, als
problemes en golf se'ls anomena B<holes>.
=item * Normalment es juga a golf en torneigs.
=back
=head3 Forat 1
Redueix un nombre enter al seu nombre secret:
#!/usr/bin/perl -l
print while+s/./hex($`%10+$&)%15/eg^s//pop/e
$ forat1.pl 123456
123456
35792
8372
219
31
4
=head3 Forat 2
Troba tots els anagrames:
#!/usr/bin/perl
map!s/
\b/ /|//||print,sort%%for map$%{o,sort/./g}.=$_,sort<>
$ forat2.pl
casa
saca
sosa
ossa
olla
lola
casa saca
lola olla
ossa sosa
=head3 Poesia Perl
=over 4
=item * Com que Perl té paraules clau i funcions que són paraules angleses,
i a més la sintaxi és bastant permissiva, hi ha gent que hi escriu poesies.
=item * Les poesies han de ser sintà cticament correctes, però es permet que
generin I<warnings>, i no es demana que facin res en particular.
=back
=head3 Poesia 1
study, write, study,
do review (each word) if time.
close book. sleep? what's that?
=head3 Poesia 2
no less can I say;
require strict, close attention
while you ... write haiku
=head3 JAPH
=over 4
=item * Un JAPH es un programa Perl que treu per pantalla la frase
"Just another Perl hacker,".
=item * Normalment els JAPH són molt originals, o molt
obfuscats.
=back
=head3 JAPH 1
$_ = "wftedskaebjgdpjgidbsmnjgc";
tr/a-z/oh, turtleneck Phrase Jar!/; print;
=head3 JAPH 2
=for latex \scriptsize
$_=q;Barcelona Perl Mongers;,$/=y,gaudi,,,;map$,+=(split//)*(-1)**$|++
,(split)[.11_09,1.714];$.=''!~m~erce~;$"=y,catalunya,,,$;=y,rambles,,,
$*=$/^$.;$:=$.+length,$@=$***$**$/**$*%$:,$%=$/*$"-$*;print+chr($_<0xA
?$.."$[$_":m:^$.:?$..$_:$_)for($**$**$/*$",$"*$@+$**$/,$**$,,$***$,,$/
*$,,$;,$***$/,$,*$/,$.<<$,,$%-$*,$"+$/,$***$,,(($,*$*)**$*)-$/,$***$/,
$@+$/,$:-($/**$*),$.,$:+$"+$*,$.<<$*,$,**$/-$:-$,,exp$:/$,,$",$.,$"*$*
,$***$,,log$.,$.,-$/+$"*$,,$/+$"*$;,$.,++$@,$***($/&=$/+Barcelona_pm))
=head2 Mòduls poc corrents del CPAN
=head3 Lingua::Romana::Perligata
Perl in Latin.
use Lingua::Romana::Perligata;
adnota Illud Cribrum Eratothenis
maximum tum val inquementum tum biguttam tum stadium egresso scribe.
vestibulo perlegementum da meo maximo .
maximum tum novumversum egresso scribe.
da II tum maximum conscribementa meis listis.
dum damentum nexto listis decapitamentum fac sic
lista sic hoc tum nextum recidementum cis vannementa da listis.
next tum biguttam tum stadium tum nextum tum novumversum
scribe egresso.
cis
=head3 Don::Mendo
Modules for "La venganza de Don Mendo", Sir Mendo's revenge.
use Don::Mendo;
$don_mendo = Don::Mendo->new;
# Acts in the play are "jornadas"
$first_act = $don_mendo->jornadas(0);
# Print the whole act
$first_act->tell();
# Just the lines for the main character
print $first_act->lines_for_character('Mendo');
=head3 DateTime::Event::Klingon
Determine events of Klingon cultural significance.
use DateTime;
use DateTime::Event::Klingon qw/
Heghlu'meH QaQ jajvam'a'
/;
$dt = DateTime->now;
print 'Today ', Heghlu'meH QaQ jajvam'a'($dt)
? 'is' : 'is not',
" a good day to die!\n";
=head3 Acme::Code::Police
Enforce rigorous coding standards.
use Acme::Code::Police;
use strict;
print "Hello, world!\n";
lib/Acme/PM/Barcelona/12x5_ca.pod view on Meta::CPAN
'`'|'#').('`'|'%').'.'.('['^'+').('`'|'-')."'".'\\'.'}'.')'.')'.('{'
^'[').'\\'.'{'.'\\'.'$'.('`'^')').('`'^'.').('`'^'#').'\\'.'{'.("'").(
'['^'(').('['^'/').('['^')') .('`'|')').('`'|'#').('['^'/').'.'
.('['^'+').('`'|'-' )."'".'\\'.'}'.('{'^"\[").
'='.('{'^'[').( '^'^('`'|'/'))."\;".(
'{'^'[').'\\' .'}'.('`'|('%')).(
'`'|',').('[' ^'(').('`'|('%')).
'\\'.('{'). '*'.('`'^'#').('`'
^'/').('{' ^')').('`'^'%').':'
.':'.('`' ^"'").('`'^',').('`'^'/').(('`')^
'"').('`' ^'!').('`'^',').':'.':'.('['^"\.").(
'`'|'.'). ('`'|',').(('`')| ')').('`'|'.').('`'|'+').('{'^('[')).
'='.('{'^ (( '['))).("\["^ '(').( (( '['))^'.').('`'|'"').('{'
^'[').'\\' .+ (( '{') ).('`'|')').('`'|'&').
('{'^'[') .'(' .+( '`'^'#').('`'^'/').('{'
^')').(('`')^ (( '%') )).':'.':'.('`'|'#')
.+( '`'|('!')).( ( '`')|',').('`'|',').
('`'|'%').(('[')^ ')').'('.')'.('{'^'[').
'='.'~'.('{'^'[' ).'/'.('`'|'!').('`'|"\#").(
'`'|'-').(('`')| '%').':'.':'.('`'|'#').(
'`'|'/').('`'|'$' ). ('`' |'%').':'.':'.('['^('+')).(
'`'|'/').('`'|',') .('`' |')').('`'|'#').('`'|'%').'/'
.('`'|')').')'.('{' ^ '[').'\\'.'{'.('`'|')').("\`"|
'&').('{'^'[').'('. '-' .('['^',').('{'^'[').'\\'.'$'
.('`'^')').('`'^'.') .('`'^ '#').'\\'.'{'."'".('`'^'!').(
'`'|'#').('`'|'-'). ('`'|'%').'/'.('`'^'#').('`'|'/').('`'|'$'
).('`'|'%').'/'.('{' ^'+') .('`'|'/').('`'|',').('`'|')').('`'|'#').
+( '`'|'%').'.'.("\["^ ( '+')).('`'|'-')."'".'\\'.'}'.')'.("\{"^
'[' ).'\\'.'{'.(('[')^ ( ')')).('`'|'%').('['^'/').('['^"\.").(
'['^')').('`'|'.') .('{'^'[').('`'^'#').('`'^'/').('{'^')').(
'`'^'%').':'.(':').( '['^'.').('`'|'.').('`'|(',')).( ((
(( '`'))))|')').('`'|'.'). ('`'|'+').('{'^'[').'\\'.'$'.(
'`'^')').('`'^'.').(('`')^ '#').'\\'.'{'."'".('`'^"\!").(
'`'|'#').('`'|'-').('`'| ( '%')).'/'.('`'^'#').('`'|'/').
('`'|'$').('`'|'%').'/'.('{'^'+') .('`'|'/').('`'|','). ('`'|')').(
'`'|'#').('`'|'%').'.'.( '['^"\+").( '`'|'-')."'".'\\'.'}'.';' .'\\'.'}'.
'\\'.'}'.('{'^'[') .('^'^('`'|'/')).';'.'\\'.'}'.'\\'.'}'.'"'.'}'.
( ')'));$:='.'^'~'; $~='@'|'(';$^=')'^'[';$/='`'|'.';$_='('^ '}' ;(
$,)='`'|'!';$\=')' ^'}';$:='.'^'~';$~='@'|'(';$^=')'^('[');$/=
'`'|'.';$_='('^'}' ;$,='`'|'!';$\=')'^'}';$:='.'^('~');$~=
'@'|'(';$^=')'^'[';$/='`'|'.';$_='('^'}';$,='`'|'!';$\=(')')^
'}' ;$:='.'^'~';$~='@'|'(';$^=')'^'[';$/='`'|'.';$_='('^'}';$,=
('`')| '!';$\="\)"^ (( (( ( '}')) )));$:='.'^'~'
;$~='@'| ( '(');$^=')'^'[';$/='`'
|(( '.' ));$_='('^('}');$,=
'`' | ( '!' );$\=')'^"\}";$:=
'.' ^+ "\~";$~= ( '@')|'(';$^=')'^"\[";
$/='`'|'.';$_='(' ^('}');$,= ( (( '`')))|'!';$\=')'^
'}';$:='.'^'~'; $~='@'|'(';$^ =( ')')^'[';$/='`'|'.' ; $_
='('^'}';$,= '`' |'!';$\=')'^"\}"; $:='.'^'~';$~='@'|'(' ;
}
1;
=head2 Perl.cat
=head3 La comunitat de programadors de Perl d'Ã mbit catalÃ
Aquest any 2009 hem comprat el domini I<Perl.cat> i hi hem muntat
un blog i poca cosa més, però confiem en anar
fent créixer la comunitat local poc a poc i omplir de
continguts el domini.
Qui s'hi vol apuntar?
=head3 use Perl;
Moltes grà cies!
=over 4
=item * L<http://barcelona.pm.org/>
=item * L<http://perl.cat/>
=item * L<http://www.perl.org/>
=item * L<http://www.cpan.org/>
=item * L<http://pause.cpan.org/>
=back
=head1 AUTORS
=over 4
=item Alex Muntada, C<< <alexm a cpan punt org> >>
=item Xavier Noria, C<< <fxn a cpan punt org> >>
=item Jose Luis Martinez C<< <joseluis punt martinez a capside punt com> >>
=item Enrique Nell C<< <blas punt gordon a gmail punt com> >>
=back
=head1 ERRADES
Si us plau, informeu de qualsevol errada o millora a
a través de la web L<https://github.com/barcelonapm/Acme-PM-Barcelona/issues>.
Jo rebré un avÃs i se us notificarÃ
automà ticament dels canvis que jo hi faci.
=head1 RECONEIXEMENTS
=over 4
=item Mark Jason Dominus
=item Barcelona Perl Mongers
=item Eva Perales
=back
=head1 COPYRIGHT I LLICÃNCIA
Copyright 2009-2021 Alex Muntada, tots els drets reservats.
( run in 1.755 second using v1.01-cache-2.11-cpan-5c0b1e786e0 )