88
Descobrindo a Linguagem Perl

Descobrindo a linguagem Perl

  • Upload
    garux

  • View
    58

  • Download
    2

Embed Size (px)

DESCRIPTION

Conheça um pouco mais sobre a linguagem Perl de programação e tudo que ela tem a oferecer! YAPC::Brasil 2014

Citation preview

Page 1: Descobrindo a linguagem Perl

Descobrindo a Linguagem Perl

Page 2: Descobrindo a linguagem Perl

Olá!

Page 3: Descobrindo a linguagem Perl

@that_garu

Page 4: Descobrindo a linguagem Perl

Just another Perl hacker

Page 5: Descobrindo a linguagem Perl

Perl?

Page 6: Descobrindo a linguagem Perl
Page 7: Descobrindo a linguagem Perl
Page 8: Descobrindo a linguagem Perl
Page 9: Descobrindo a linguagem Perl

Perl.

Page 10: Descobrindo a linguagem Perl

print''.join('%(pre)s%(num)s %(bot)s on the wall, %(nul)s %(bot)s,\n%(tak)s\n'%(lambda c,b:{'pre' :['','%s %s on the wall.\n\n'%(c,b)][abs(cmp(c,'Ninety-nine'))],'num':c,'nul':c. lower(),'bot':b,'tak':['Go to the store and buy some more... Ninety-nine %s.'%b,'Take one down, pass it around,'] [abs(cmp(x,0))] })((lambda x,o:[(['Twenty','Thirty','Forty','Fifty','Sixty','Seventy','Eighty','Ninety' ][x/(2*3+4)-2]+'-'+o.lower()).replace('-no more',''),o][int(x<20)])(x,['No more','One','Two','Three','Four','Five', 'Six','Seven','Eight','Nine','Ten','Eleven','Twelve','Thirteen','Fourteen',‘Fifteen','Sixteen','Seventeen','Eighteen', 'Nineteen'][[x,x%10][int(x>=20)]]),'bottle%s of beer'%['','s'][abs(cmp(x,1))]) for x in xrange(99,-1,-1))

Page 11: Descobrindo a linguagem Perl

d=[30644250780,9003106878,30636278846,66641217692,4501790980, 67124603036,13161973916,66606629920,30642677916,30643069058];a,s= [],$*[0];s.bytes{|b|a<<('%036b'%d[b.chr.to_i]).scan( /\d{6}/)};a.transpose.each{|a|a.join.bytes{|i| print((49==i)?($*[1]||"#"):32.chr)};puts}

Page 12: Descobrindo a linguagem Perl

use CGI':all';path_info=~/\w+/;$_=`grep -l $& *`.h1($&).escapeHTML$t=param(t) ||`dd<$&`;open F,">$&";print F$t;s/htt\S+|([A-Z]\w+){2,}/a{href,$&},$&/eg; print header,pre"$_<form>",submit,textarea t,$t,9,70

Page 13: Descobrindo a linguagem Perl

use Dancer; use DateTime; !get '/friday13' => sub { is_friday_the_13th( DateTime->now ); }; !get '/friday13/:year/:month/:day' => sub { my $date = DateTime->new( year => param('year' ), month => param('month'), day => param('day' ), ); ! is_friday_the_13th( $date ); }; !sub is_friday_the_13th { my $date = shift; ! if ($date->day == 13 and $date->day_name eq 'Friday') { return ‘YES!'; } else { return 'NO :('; } } !start;

Page 14: Descobrindo a linguagem Perl

moderna

Page 15: Descobrindo a linguagem Perl

multi-plataforma

Page 16: Descobrindo a linguagem Perl

multi-paradigma

Page 17: Descobrindo a linguagem Perl

enterprise-ready

Page 18: Descobrindo a linguagem Perl
Page 19: Descobrindo a linguagem Perl
Page 20: Descobrindo a linguagem Perl
Page 21: Descobrindo a linguagem Perl
Page 22: Descobrindo a linguagem Perl
Page 23: Descobrindo a linguagem Perl
Page 24: Descobrindo a linguagem Perl
Page 25: Descobrindo a linguagem Perl
Page 26: Descobrindo a linguagem Perl
Page 27: Descobrindo a linguagem Perl
Page 28: Descobrindo a linguagem Perl

Perl.

Page 29: Descobrindo a linguagem Perl

Perl.Comunidade

Page 30: Descobrindo a linguagem Perl

CPANmetacpan.org

Page 31: Descobrindo a linguagem Perl
Page 32: Descobrindo a linguagem Perl

CPAN Testerscpantesters.org

Page 33: Descobrindo a linguagem Perl

Perl Mongerspm.org

Page 34: Descobrindo a linguagem Perl

YAPCYet Another Perl Conference

Page 35: Descobrindo a linguagem Perl

irc.perl.org1249 usuários, 462 canais

Page 36: Descobrindo a linguagem Perl

Usuários mais felizes?

Page 37: Descobrindo a linguagem Perl

http://www.crowdflower.com/blog/2009/05/the-programming-language-with-the-happiest-users

Page 38: Descobrindo a linguagem Perl
Page 39: Descobrindo a linguagem Perl
Page 40: Descobrindo a linguagem Perl
Page 41: Descobrindo a linguagem Perl

Músicas(sério)

Page 42: Descobrindo a linguagem Perl
Page 43: Descobrindo a linguagem Perl
Page 44: Descobrindo a linguagem Perl

Poesia(mais sério ainda)

Page 45: Descobrindo a linguagem Perl

my $eyes = "closed"; my $heart = "aching"; my $beloved = "gone"; !!no warnings; !my $love = (); !!open MY, "mind"; foreach ($love) { open MY, $eyes; tell my $mind or open my $eyes; } !do not $fear and do not die; !$i; die "because i love you\n"; !do { $i; sleep($_) } while ( $awake ); !warn "$me" if ($i == $wrong); !bind my $love, $dear and do not exit; for (my $world = "dark") {}; for (my $eyes = "blind") {};

Page 46: Descobrindo a linguagem Perl

doações & apoios

Page 47: Descobrindo a linguagem Perl

Send-a-Newbie

Page 48: Descobrindo a linguagem Perl

Google SoC / Code-in

Page 49: Descobrindo a linguagem Perl

GNOME Outreach Program for Women

Page 50: Descobrindo a linguagem Perl

The Perl Foundation

Page 51: Descobrindo a linguagem Perl

Enlightened Perl Organisation

Page 52: Descobrindo a linguagem Perl

Japan Perl Association

Page 53: Descobrindo a linguagem Perl

Websites

Page 54: Descobrindo a linguagem Perl

Listas de Discussão

Page 55: Descobrindo a linguagem Perl

Encontros Técnicos++

Page 56: Descobrindo a linguagem Perl

Encontros Sociais++ Encontros Sociais++ Encontros Sociais++

Page 57: Descobrindo a linguagem Perl

Fácil de contribuir

Page 58: Descobrindo a linguagem Perl

Fácil de contribuirsup

er

Page 59: Descobrindo a linguagem Perl

Perl ♡ Github

Page 60: Descobrindo a linguagem Perl

Perl 5 em 5 minutos!

Page 61: Descobrindo a linguagem Perl

use strict; use warnings;

Page 62: Descobrindo a linguagem Perl

use strict; use warnings; use diagnostics;

Page 63: Descobrindo a linguagem Perl

print “Alo, Mundo”;

Page 64: Descobrindo a linguagem Perl

print 4 + 3 * 2;

Page 65: Descobrindo a linguagem Perl

use Math::Trig; !

print Math::Trig::tan(1);

Page 66: Descobrindo a linguagem Perl

print “Alo, Mundo”;

Page 67: Descobrindo a linguagem Perl

print “Alo, Mundo”;sub alo { !

}

Page 68: Descobrindo a linguagem Perl

sub alo { my ($nome) = @_; print “Alo, $nome”; } !

alo( “YAPC::Brasil” );

Page 69: Descobrindo a linguagem Perl

package Educado; !

sub alo { my ($nome) = @_; print “Alo, $nome”; } !

1;

Page 70: Descobrindo a linguagem Perl

use Educado; !

alo( “YAPC::Brasil” );

Page 71: Descobrindo a linguagem Perl

package Educado; !

sub alo { my ($nome) = @_; print “Alo, $nome”; } !

1;

Page 72: Descobrindo a linguagem Perl

package Educado; use Moo; !

has ‘nome’, is => ‘ro’, default => ‘Mundo’; !

sub alo { my ($self) = @_; print “Alo, “ . $self->nome; } !

1;

Page 73: Descobrindo a linguagem Perl

use Educado; !

my $obj = Educado->new; !

!

!

print $obj->alo;

Page 74: Descobrindo a linguagem Perl

use Educado; !

my $obj = Educado->new( nome => ‘YAPC’, ); !

print $obj->alo;

Page 75: Descobrindo a linguagem Perl

sub alo { my ($nome) = @_; if ($nome eq ‘YAPC’) { foreach my $area (‘NA’, ‘EU’, ‘Asia’, 'Brasil’) { print “Alo, YAPC::” . $area; } } else { print “Alo, $nome”; } }

Page 76: Descobrindo a linguagem Perl

Snippets!

Page 77: Descobrindo a linguagem Perl

use autodie; open my $fh, '<', 'arquivo.txt'; !

while (my $linha = <$fh>) { print $linha; } close $fh;

Page 78: Descobrindo a linguagem Perl

use autodie; open my $fh, ‘>', 'arquivo.txt'; !

print $fh 'Alô, mundo!'; !

close $fh;

Page 79: Descobrindo a linguagem Perl

use Net::Twitter::Search; !

my $busca = Net::Twitter::Search->new; !

$busca->search(‘Perl')->{results}; !

foreach my $result ( @$busca ) { say $result->{text}; }

Page 80: Descobrindo a linguagem Perl

!use WWW::Mechanize;my $mech = WWW::Mechanize->new; !$mech->get( 'http://www.exemplo.com' ); !$mech->follow_link( text => 'download' ); !$mech->submit_form( with_fields => { nome => 'Meu Nome’, linguagem => ‘Perl!', });

Page 81: Descobrindo a linguagem Perl

!

use Spreadsheet::Read; !

# planilha pode ser em .csv, .xls, .ods, .sxc... my $data = ReadData( 'data.xlsx' ); !

# primeira planilha, campo A3 say $sheet->[1]{'A3'};

Page 82: Descobrindo a linguagem Perl

use Dancer; !get ‘/:nome' => sub { “Olá, ". param(‘nome'); }; !!start;

Page 83: Descobrindo a linguagem Perl

use Dancer; use DateTime; !get '/friday13' => sub { is_friday_the_13th( DateTime->now ); }; !get '/friday13/:year/:month/:day' => sub { my $date = DateTime->new( year => param('year' ), month => param('month'), day => param('day' ), ); ! is_friday_the_13th( $date ); }; !sub is_friday_the_13th { my $date = shift; ! if ($date->day == 13 and $date->day_name eq 'Friday') { return ‘YES!'; } else { return 'NO :('; } } !start;

Page 84: Descobrindo a linguagem Perl

perldoc.perl.org

Page 85: Descobrindo a linguagem Perl

perldoc Meu::Modulo

Page 86: Descobrindo a linguagem Perl

perldoc -f função

Page 87: Descobrindo a linguagem Perl

http://onyxneon.com/books/modern_perl/

Page 88: Descobrindo a linguagem Perl