SlideShare una empresa de Scribd logo
1 de 31
Perl para Administradores de Sistemas Slackshow 2010 Samir Cury – Rio Perl Monks
Caracteristicas principais do Perl  ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
As faces do Perl - desmistificando ,[object Object],[object Object],[object Object],#### Linux Merry Christmas by SmokeMachine### perl -e'*MERRY=**XMAS=*/;' -F: -nae'$,=join q,,,map{chr$_+@{[(1)x unpack q CC,q q   q]}}q 1007769828289001 =~/.{2}/g;BEGIN{*SANTA = *ARGV}$MERRY=$XMAS;print$F[0],join q,,,map{chr}q;099104114105115116109097115;=~/(.{3})/g;BEGIN{push@SANTA,join q,,,map{chr}q 30471011160990471120971151151191003 =~/(.{3})/g}' http://tinyurl.com/26owg37
As faces do Perl - desmistificando ,[object Object],[object Object],[object Object],#!/usr/bin/perl use Employee; my $object = new Employee( "Mohammad", "Saleem",23234345); # Get first name which is set using constructor. my $firstName = $object->getFirstName(); print "Before Setting First Name is : $firstName"; # Now Set first name using helper function. $object->setFirstName( "Mohd." ); # Now get first name set by helper function. $firstName =  $object->getFirstName(); print "After Setting First Name is : $firstName";
Mais faces – diversão / “prototipagem” / ,[object Object],[object Object],Darkstar ~ # cat teste.txt  I am writing here just to test a script Darkstar ~ # perl -nlpe's/writing/laughing/ or s/script/oneliner/g' teste.txt I am laughing here just to test a one-liner
Diversos Frameworks / Utilidades ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Exemplo - DBIx::Class ################ Arquivo da classe Schema::Result::Artist ############ package MyDB::Schema::Result::Artist; use base qw/DBIx::Class::Core/; __PACKAGE__->table('artist'); __PACKAGE__->add_columns(qw/ artistid name /); __PACKAGE__->set_primary_key('artistid'); 1; ############### Arquivo do seu código: ################## Use MyDB::Schema::Result::Artist; my $schema = MyDB::Schema->connect($dbi_dsn, $user, $pass, dbi_params); $schema->table('artist'); #SELECT * FROM Artist  my @all_artists = $schema->resultset('Artist')->all; #SELECT * FROM Artist WHERE name LIKE 'John%' my $johns_rs = $schema->resultset('Artist')->search( # Build your WHERE using an SQL::Abstract structure: { name => { like => 'John%' } } ); Para quem quiser mais : http://www.slideshare.net/jshirley/demystifying-dbixclass
A linguagem ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],Perldoc Perldata http://perldoc.perl.org/perldata.html
Acessando as variaveis ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Problema ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Estruturas de loop .. interessantes ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Inovações do Perl 5.10 ,[object Object],[object Object],[object Object],Para os curiosos / interessados : http://www.slideshare.net/rjbs/perl-510-for-people-who-arent-totally-insane
Say ,[object Object],[object Object],samir@Darkstar ~ $ perl -E'say "HelloWorld"' HelloWorld samir@Darkstar ~ $
SmartMatching - Arrays ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
SmartMatching - Hashes ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Variáveis especiais – não mordem ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Variáveis especiais – ainda com medo? ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
CPAN – O poder do Perl ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Update pre-palestra! Net::Twitter::Lite ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
NameSpaces ,[object Object],[object Object],[object Object],[object Object],[object Object]
Instalando um modulo Perl ,[object Object],[object Object],Files=27, Tests=174,  4 wallclock secs ( 0.16 usr  0.06 sys +  3.07 cusr  0.49 csys =  3.78 CPU) Result: PASS GARU/App-Rad-1.04.tar.gz /usr/bin/make test -- OK Running make install Prepending /root/.cpan/build/App-Rad-1.04-smkdfB/blib/arch /root/.cpan/build/App-Rad-1.04-smkdfB/blib/lib to PERL5LIB for 'install' Installing /usr/local/share/perl/5.10.0/App/Rad.pm Installing /usr/local/share/perl/5.10.0/App/Rad/Help.pm Installing /usr/local/share/perl/5.10.0/App/Rad/Config.pm Installing /usr/local/share/perl/5.10.0/App/Rad/Plugin.pod Installing /usr/local/share/perl/5.10.0/App/Rad/Include.pm Installing /usr/local/share/perl/5.10.0/App/Rad/Exclude.pm Installing /usr/local/man/man3/App::Rad::Include.3pm Installing /usr/local/man/man3/App::Rad::Plugin.3pm Installing /usr/local/man/man3/App::Rad::Exclude.3pm Installing /usr/local/man/man3/App::Rad.3pm Installing /usr/local/man/man3/App::Rad::Help.3pm Appending installation info to /usr/lib/perl/5.10/perllocal.pod GARU/App-Rad-1.04.tar.gz /usr/bin/make install  -- OK
local::lib – Instale tudo no seu Home! ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],samir@Darkstar ~ $ perl -Mlocal::lib  Attempting to create directory /home/samir/perl5 Attempting to create file /home/samir/perl5/.modulebuildrc export MODULEBUILDRC="/home/samir/perl5/.modulebuildrc" export PERL_MM_OPT="INSTALL_BASE=/home/samir/perl5" export PERL5LIB="/home/samir/perl5/lib/perl5/i486-linux-gnu-thread-multi:/home/samir/perl5/lib/perl5" export PATH="/home/samir/perl5/bin:$PATH"
Perldoc – sua fonte de referencias ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Um pouco mais de one-liners ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Arquivo cobaia samir@Darkstar ~ $ cat perl.txt  PING google.com (64.233.163.104) 56(84) bytes of data. 64 bytes from bs-in-f104.1e100.net (64.233.163.104): icmp_seq=4 ttl=54 time=12.5 ms --- google.com ping statistics --- 4 packets transmitted, 4 received, 0% packet loss, time 3004ms rtt min/avg/max/mdev = 11.826/12.543/13.847/0.795 ms
Flags interessantes ,[object Object],[object Object],while (<>) { ...  #seu codigo aqui } samir@Darkstar ~ $ perl -ne'print $_  if   m/^--*/ ' perl.txt --- google.com ping statistics --- samir@Darkstar ~ $ perl -npe's/^--.*/SUBSTITUI AQUI COM O PERL/' perl.txt PING google.com (64.233.163.104) 56(84) bytes of data. 64 bytes from bs-in-f104.1e100.net (64.233.163.104): icmp_seq=4 ttl=54 time=12.5 ms SUBSTITUI AQUI COM O PERL 4 packets transmitted, 4 received, 0% packet loss, time 3004ms rtt min/avg/max/mdev = 11.826/12.543/13.847/0.795 ms
Flags interessantes ,[object Object],[object Object],[object Object],[object Object]
Casos de uso de one-liners ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Hands on! App::Rad
Yet Another Perl Conference YAPC::BR ,[object Object],[object Object],[object Object]
Perl -E'say q[Obrigado!]' ,[object Object],[object Object],[object Object]

Más contenido relacionado

Destacado

Summer training project
Summer training projectSummer training project
Summer training projectGURNOOR2110
 
Consumer protection bill
Consumer protection billConsumer protection bill
Consumer protection billBChange
 
Cactus explorer 8 complete
Cactus explorer 8 completeCactus explorer 8 complete
Cactus explorer 8 completerochonf
 
C:\Documents And Settings\User\My Documents\My Pictures\Drakestergabypeace An...
C:\Documents And Settings\User\My Documents\My Pictures\Drakestergabypeace An...C:\Documents And Settings\User\My Documents\My Pictures\Drakestergabypeace An...
C:\Documents And Settings\User\My Documents\My Pictures\Drakestergabypeace An...Gabriela Silva Hernandez
 
[plan politika] Pemuda dan Politik Indonesia : In Search of Truly Youthful Un...
[plan politika] Pemuda dan Politik Indonesia : In Search of Truly Youthful Un...[plan politika] Pemuda dan Politik Indonesia : In Search of Truly Youthful Un...
[plan politika] Pemuda dan Politik Indonesia : In Search of Truly Youthful Un...Plan Politika
 
Theo2 church-as-a-sacrament-and-a-mystery-1195896639466224-2
Theo2 church-as-a-sacrament-and-a-mystery-1195896639466224-2Theo2 church-as-a-sacrament-and-a-mystery-1195896639466224-2
Theo2 church-as-a-sacrament-and-a-mystery-1195896639466224-2Jj Rebz Duran
 
IEC Do's & Don'ts
IEC  Do's & Don'tsIEC  Do's & Don'ts
IEC Do's & Don'tsiec
 
IEC Orientation first year for B-Tech
IEC Orientation first year for B-TechIEC Orientation first year for B-Tech
IEC Orientation first year for B-Techiec
 
IEC Orientation first year for MBA,MCA,B. Pharmacy & IHM
IEC Orientation first year for MBA,MCA,B. Pharmacy & IHMIEC Orientation first year for MBA,MCA,B. Pharmacy & IHM
IEC Orientation first year for MBA,MCA,B. Pharmacy & IHMiec
 
วารุณี
วารุณีวารุณี
วารุณีwarunee18
 
SJob
SJobSJob
SJobd3ves
 

Destacado (20)

Summer training project
Summer training projectSummer training project
Summer training project
 
Ramas de la biologia
Ramas de la biologiaRamas de la biologia
Ramas de la biologia
 
Anatomia de mi PLE
Anatomia de mi PLEAnatomia de mi PLE
Anatomia de mi PLE
 
Consumer protection bill
Consumer protection billConsumer protection bill
Consumer protection bill
 
Kannanotto: Talouden lyhyen ja pitkän aikavälin muutostarpeita
Kannanotto: Talouden lyhyen ja pitkän aikavälin muutostarpeitaKannanotto: Talouden lyhyen ja pitkän aikavälin muutostarpeita
Kannanotto: Talouden lyhyen ja pitkän aikavälin muutostarpeita
 
Gagan
GaganGagan
Gagan
 
15 19 nov
15 19 nov15 19 nov
15 19 nov
 
Accessing resume templates in word
Accessing resume templates in wordAccessing resume templates in word
Accessing resume templates in word
 
Cactus explorer 8 complete
Cactus explorer 8 completeCactus explorer 8 complete
Cactus explorer 8 complete
 
C:\Documents And Settings\User\My Documents\My Pictures\Drakestergabypeace An...
C:\Documents And Settings\User\My Documents\My Pictures\Drakestergabypeace An...C:\Documents And Settings\User\My Documents\My Pictures\Drakestergabypeace An...
C:\Documents And Settings\User\My Documents\My Pictures\Drakestergabypeace An...
 
Financial 101.2012
Financial 101.2012Financial 101.2012
Financial 101.2012
 
[plan politika] Pemuda dan Politik Indonesia : In Search of Truly Youthful Un...
[plan politika] Pemuda dan Politik Indonesia : In Search of Truly Youthful Un...[plan politika] Pemuda dan Politik Indonesia : In Search of Truly Youthful Un...
[plan politika] Pemuda dan Politik Indonesia : In Search of Truly Youthful Un...
 
Theo2 church-as-a-sacrament-and-a-mystery-1195896639466224-2
Theo2 church-as-a-sacrament-and-a-mystery-1195896639466224-2Theo2 church-as-a-sacrament-and-a-mystery-1195896639466224-2
Theo2 church-as-a-sacrament-and-a-mystery-1195896639466224-2
 
IEC Do's & Don'ts
IEC  Do's & Don'tsIEC  Do's & Don'ts
IEC Do's & Don'ts
 
IEC Orientation first year for B-Tech
IEC Orientation first year for B-TechIEC Orientation first year for B-Tech
IEC Orientation first year for B-Tech
 
IEC Orientation first year for MBA,MCA,B. Pharmacy & IHM
IEC Orientation first year for MBA,MCA,B. Pharmacy & IHMIEC Orientation first year for MBA,MCA,B. Pharmacy & IHM
IEC Orientation first year for MBA,MCA,B. Pharmacy & IHM
 
Kannanotto: Oppisopimuskoulutus tarvitsee oman kehittämisohjelmansa
Kannanotto: Oppisopimuskoulutus tarvitsee oman kehittämisohjelmansaKannanotto: Oppisopimuskoulutus tarvitsee oman kehittämisohjelmansa
Kannanotto: Oppisopimuskoulutus tarvitsee oman kehittämisohjelmansa
 
áLbum de fotografias
áLbum de fotografiasáLbum de fotografias
áLbum de fotografias
 
วารุณี
วารุณีวารุณี
วารุณี
 
SJob
SJobSJob
SJob
 

Similar a Perl para sysadmins

Aspetos gerais de desenvolvimento web.
Aspetos gerais de desenvolvimento web.Aspetos gerais de desenvolvimento web.
Aspetos gerais de desenvolvimento web.Corcioli
 
Perl6 Regex Programming with Rakudo
Perl6 Regex Programming with RakudoPerl6 Regex Programming with Rakudo
Perl6 Regex Programming with Rakudotakesako
 
Преобразование Perl-структур в XML. Трефилова Екатерина. Moscow.pm 6 июля 2013
Преобразование Perl-структур в XML. Трефилова Екатерина. Moscow.pm 6 июля 2013Преобразование Perl-структур в XML. Трефилова Екатерина. Moscow.pm 6 июля 2013
Преобразование Perl-структур в XML. Трефилова Екатерина. Moscow.pm 6 июля 2013Moscow.pm
 
Core rest edgarsilva_v1
Core rest edgarsilva_v1Core rest edgarsilva_v1
Core rest edgarsilva_v1Edgar Silva
 
Migracion de ActionScript 2 a ActionScript 3.0
Migracion de ActionScript 2 a ActionScript 3.0Migracion de ActionScript 2 a ActionScript 3.0
Migracion de ActionScript 2 a ActionScript 3.0Alberto González
 
Seminario Ruby On Rails Aula Open Source
Seminario Ruby On Rails Aula Open SourceSeminario Ruby On Rails Aula Open Source
Seminario Ruby On Rails Aula Open SourceSergio Alonso
 
Ria的强力后盾:rest+海量存储
Ria的强力后盾:rest+海量存储 Ria的强力后盾:rest+海量存储
Ria的强力后盾:rest+海量存储 zhen chen
 
Uso de la Programación para la Seguridad en Redes (a.k.a. Sockets y Shellcoding)
Uso de la Programación para la Seguridad en Redes (a.k.a. Sockets y Shellcoding)Uso de la Programación para la Seguridad en Redes (a.k.a. Sockets y Shellcoding)
Uso de la Programación para la Seguridad en Redes (a.k.a. Sockets y Shellcoding)Pedro Valera
 
망고100 보드로 놀아보자 16
망고100 보드로 놀아보자 16망고100 보드로 놀아보자 16
망고100 보드로 놀아보자 16종인 전
 
UglifyJS 使用文档
UglifyJS 使用文档UglifyJS 使用文档
UglifyJS 使用文档明 李
 
Ленивые итераторы для разбора разнородных данных. Михаил Озеров. Moscow.pm 6 ...
Ленивые итераторы для разбора разнородных данных. Михаил Озеров. Moscow.pm 6 ...Ленивые итераторы для разбора разнородных данных. Михаил Озеров. Moscow.pm 6 ...
Ленивые итераторы для разбора разнородных данных. Михаил Озеров. Moscow.pm 6 ...Moscow.pm
 
Boostのあるプログラミング生活
Boostのあるプログラミング生活Boostのあるプログラミング生活
Boostのあるプログラミング生活Akira Takahashi
 
Chico-UI en escuela DaVinci
Chico-UI en escuela DaVinciChico-UI en escuela DaVinci
Chico-UI en escuela DaVinciNatan Santolo
 
DevInRio 2010 - NodeJS
DevInRio 2010 - NodeJSDevInRio 2010 - NodeJS
DevInRio 2010 - NodeJSEmerson Macedo
 
Présentation du framework Grails
Présentation du framework GrailsPrésentation du framework Grails
Présentation du framework GrailsProxym-IT
 
Social networks analisys - github API
Social networks analisys - github APISocial networks analisys - github API
Social networks analisys - github APIbaturin
 

Similar a Perl para sysadmins (20)

Aspetos gerais de desenvolvimento web.
Aspetos gerais de desenvolvimento web.Aspetos gerais de desenvolvimento web.
Aspetos gerais de desenvolvimento web.
 
Perl6 Regex Programming with Rakudo
Perl6 Regex Programming with RakudoPerl6 Regex Programming with Rakudo
Perl6 Regex Programming with Rakudo
 
Преобразование Perl-структур в XML. Трефилова Екатерина. Moscow.pm 6 июля 2013
Преобразование Perl-структур в XML. Трефилова Екатерина. Moscow.pm 6 июля 2013Преобразование Perl-структур в XML. Трефилова Екатерина. Moscow.pm 6 июля 2013
Преобразование Perl-структур в XML. Трефилова Екатерина. Moscow.pm 6 июля 2013
 
MS Swit 2010
MS Swit 2010MS Swit 2010
MS Swit 2010
 
Core rest edgarsilva_v1
Core rest edgarsilva_v1Core rest edgarsilva_v1
Core rest edgarsilva_v1
 
Migracion de ActionScript 2 a ActionScript 3.0
Migracion de ActionScript 2 a ActionScript 3.0Migracion de ActionScript 2 a ActionScript 3.0
Migracion de ActionScript 2 a ActionScript 3.0
 
Seminario Ruby On Rails Aula Open Source
Seminario Ruby On Rails Aula Open SourceSeminario Ruby On Rails Aula Open Source
Seminario Ruby On Rails Aula Open Source
 
Ria的强力后盾:rest+海量存储
Ria的强力后盾:rest+海量存储 Ria的强力后盾:rest+海量存储
Ria的强力后盾:rest+海量存储
 
Uso de la Programación para la Seguridad en Redes (a.k.a. Sockets y Shellcoding)
Uso de la Programación para la Seguridad en Redes (a.k.a. Sockets y Shellcoding)Uso de la Programación para la Seguridad en Redes (a.k.a. Sockets y Shellcoding)
Uso de la Programación para la Seguridad en Redes (a.k.a. Sockets y Shellcoding)
 
망고100 보드로 놀아보자 16
망고100 보드로 놀아보자 16망고100 보드로 놀아보자 16
망고100 보드로 놀아보자 16
 
UglifyJS 使用文档
UglifyJS 使用文档UglifyJS 使用文档
UglifyJS 使用文档
 
Ленивые итераторы для разбора разнородных данных. Михаил Озеров. Moscow.pm 6 ...
Ленивые итераторы для разбора разнородных данных. Михаил Озеров. Moscow.pm 6 ...Ленивые итераторы для разбора разнородных данных. Михаил Озеров. Moscow.pm 6 ...
Ленивые итераторы для разбора разнородных данных. Михаил Озеров. Moscow.pm 6 ...
 
Boostのあるプログラミング生活
Boostのあるプログラミング生活Boostのあるプログラミング生活
Boostのあるプログラミング生活
 
Der lachende Dritte
Der lachende DritteDer lachende Dritte
Der lachende Dritte
 
Chico-UI en escuela DaVinci
Chico-UI en escuela DaVinciChico-UI en escuela DaVinci
Chico-UI en escuela DaVinci
 
Why Ruby?
Why Ruby?Why Ruby?
Why Ruby?
 
FISL11 2010 - Automação de Datacenters
FISL11 2010 - Automação de DatacentersFISL11 2010 - Automação de Datacenters
FISL11 2010 - Automação de Datacenters
 
DevInRio 2010 - NodeJS
DevInRio 2010 - NodeJSDevInRio 2010 - NodeJS
DevInRio 2010 - NodeJS
 
Présentation du framework Grails
Présentation du framework GrailsPrésentation du framework Grails
Présentation du framework Grails
 
Social networks analisys - github API
Social networks analisys - github APISocial networks analisys - github API
Social networks analisys - github API
 

Perl para sysadmins

  • 1. Perl para Administradores de Sistemas Slackshow 2010 Samir Cury – Rio Perl Monks
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7. Exemplo - DBIx::Class ################ Arquivo da classe Schema::Result::Artist ############ package MyDB::Schema::Result::Artist; use base qw/DBIx::Class::Core/; __PACKAGE__->table('artist'); __PACKAGE__->add_columns(qw/ artistid name /); __PACKAGE__->set_primary_key('artistid'); 1; ############### Arquivo do seu código: ################## Use MyDB::Schema::Result::Artist; my $schema = MyDB::Schema->connect($dbi_dsn, $user, $pass, dbi_params); $schema->table('artist'); #SELECT * FROM Artist my @all_artists = $schema->resultset('Artist')->all; #SELECT * FROM Artist WHERE name LIKE 'John%' my $johns_rs = $schema->resultset('Artist')->search( # Build your WHERE using an SQL::Abstract structure: { name => { like => 'John%' } } ); Para quem quiser mais : http://www.slideshare.net/jshirley/demystifying-dbixclass
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.
  • 17.
  • 18.
  • 19.
  • 20.
  • 21.
  • 22.
  • 23.
  • 24.
  • 25. Arquivo cobaia samir@Darkstar ~ $ cat perl.txt PING google.com (64.233.163.104) 56(84) bytes of data. 64 bytes from bs-in-f104.1e100.net (64.233.163.104): icmp_seq=4 ttl=54 time=12.5 ms --- google.com ping statistics --- 4 packets transmitted, 4 received, 0% packet loss, time 3004ms rtt min/avg/max/mdev = 11.826/12.543/13.847/0.795 ms
  • 26.
  • 27.
  • 28.
  • 30.
  • 31.