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 )