Slide 1

Slide 1 text

PERL Keeping Developers Happy Since 1987 Wednesday, December 21, 2011

Slide 2

Slide 2 text

AGENDA Perl’s 7 Wonders The Perl Story Online Resources Wednesday, December 21, 2011

Slide 3

Slide 3 text

CHOOSE PERL Simplicity Object Oriented Test Driven CPAN Weird Perl is Everywhere The Perl Community Wednesday, December 21, 2011

Slide 4

Slide 4 text

SIMPLE print “Hello World” Wednesday, December 21, 2011

Slide 5

Slide 5 text

PERL KEY IDEAS Loosely Typed Powerful Text Processing Capabilities Simple: Write Only What You Need Creative: There’s more than one way to do it Modern Object Oriented and Maintainable Wednesday, December 21, 2011

Slide 6

Slide 6 text

CHOOSE PERL Simplicity Object Oriented Test Driven CPAN Weird Perl is Everywhere The Perl Community Wednesday, December 21, 2011

Slide 7

Slide 7 text

OO PERL use MooseX::Declare; class Person { has ‘name’, isa => ‘String’, is => ‘ro’; has ‘age’, isa => ‘Num’, is => ‘rw’; } Wednesday, December 21, 2011

Slide 8

Slide 8 text

CHOOSE PERL Simplicity Object Oriented Test Driven CPAN Weird Perl is Everywhere The Perl Community Wednesday, December 21, 2011

Slide 9

Slide 9 text

TDD PERL Perl is very TDD friendly Writing a test case is a breeze Results in clean code Wednesday, December 21, 2011

Slide 10

Slide 10 text

TDD PERL A Unit Test In Perl use Test::More; is( power(2, 3), 8 ); done_testing; Wednesday, December 21, 2011

Slide 11

Slide 11 text

CHOOSE PERL Simplicity Object Oriented Test Driven CPAN Weird Perl is Everywhere The Perl Community Wednesday, December 21, 2011

Slide 12

Slide 12 text

CPAN CPAN is an archive of over 20,000 modules of perl software. CPAN modules are actively maintain and developed by the community, and for the community. CPAN is also a command line tool to automatically install modules from the archive. Wednesday, December 21, 2011

Slide 13

Slide 13 text

CPAN Useful CPAN Modules: Spreadsheet::ParseExcel, Spreadsheet::WriteExcel Log::Fine, Log::Fast, Log::Tiny DBIx::Class, Moose, Dancer Try::Tiny, File::Slurp CPAN provides the tools to focus on YOUR problem. Wednesday, December 21, 2011

Slide 14

Slide 14 text

CHOOSE PERL Simplicity Object Oriented Test Driven CPAN Weird Perl is Everywhere The Perl Community Wednesday, December 21, 2011

Slide 15

Slide 15 text

PERL IS WEIRD The Spaceship Operator <=> Wednesday, December 21, 2011

Slide 16

Slide 16 text

PERL IS WEIRD The inchworm Operator ~~ Wednesday, December 21, 2011

Slide 17

Slide 17 text

PERL IS WEIRD use Acme::Labs; BRAIN: "Pinky, are you pondering what I'm pondering?" PINKY: "I think so, Brain, but first you'd have to take that whole bridge apart, wouldn't you?" zort eGAD ZORt zOrt egAD " nARf EGaD EgAD egAD NARF zOrt Zort egAD zorT ZOrT eGAD narf ZOrT eGAD zoRt narF ZORT ZoRT ZoRt ZOrT eGAD\ zOrt"; Valid Perl Wednesday, December 21, 2011

Slide 18

Slide 18 text

PERL IS WEIRD Valid Perl Wednesday, December 21, 2011

Slide 19

Slide 19 text

PERL IS WEIRD And it can even count therbligs use Acme::Mobile::Therbligs; print count_therbligs(“hello world”); Will print 26 Valid Perl Wednesday, December 21, 2011

Slide 20

Slide 20 text

CHOOSE PERL Simplicity Object Oriented Test Driven CPAN Weird Perl is Everywhere The Perl Community Wednesday, December 21, 2011

Slide 21

Slide 21 text

PERL IS EVERYWHERE Wednesday, December 21, 2011

Slide 22

Slide 22 text

CHOOSE PERL Simplicity Object Oriented Test Driven CPAN Weird Perl is Everywhere The Perl Community Wednesday, December 21, 2011

Slide 23

Slide 23 text

PERL MONGERS AROUND THE WORLD Wednesday, December 21, 2011

Slide 24

Slide 24 text

CHOOSE PERL Simplicity Object Oriented Test Driven CPAN Weird Perl is Everywhere The Perl Community Wednesday, December 21, 2011

Slide 25

Slide 25 text

THE PERL STORY Wednesday, December 21, 2011

Slide 26

Slide 26 text

PERL HISTORY Dec. 18, 1987. Perl 1.0 Wednesday, December 21, 2011

Slide 27

Slide 27 text

PERL HISTORY June 5, 1988. Perl 2.0 Add Henry Spencer’s Regexp Library Wednesday, December 21, 2011

Slide 28

Slide 28 text

PERL HISTORY Oct 18, 1989. Perl 3.0. Add Support for Binary Data Wednesday, December 21, 2011

Slide 29

Slide 29 text

PERL HISTORY Mar 21, 1991. Perl 4.0 Not too much happened, as Larry describes: “We mostly just switched version numbers so the book could refer to 4.0” Wednesday, December 21, 2011

Slide 30

Slide 30 text

PERL HISTORY Oct 18, 1994. Perl 5.0 Everything Else Wednesday, December 21, 2011

Slide 31

Slide 31 text

MODERN PERL Clean Readable Object Oriented Uses CPAN Wednesday, December 21, 2011

Slide 32

Slide 32 text

PERL FUTURE Perl 6, After christmas. Type System Formal Subroutine Parameters Moose-like OO Wednesday, December 21, 2011

Slide 33

Slide 33 text

PERL CULTURE - HAIKU no less can I say; require strict, close attention while you ... write haiku Wednesday, December 21, 2011

Slide 34

Slide 34 text

PERL CULTURE - HAIKU ugliness that grows into beauty inside of your favorite shell Wednesday, December 21, 2011

Slide 35

Slide 35 text

PERL CULTURE - HAIKU I often think of Perl programs as the haiku of the software world. Both are compact, dense, powerful, and frequently a little obscure Wednesday, December 21, 2011

Slide 36

Slide 36 text

PERL CULTURE - JAPH print “just another perl hacker”; Wednesday, December 21, 2011

Slide 37

Slide 37 text

PERL CULTURE - JAPH $_=‘987;s/^(\d+)/$1-1/e;$1?eval:print”Just Another Perl Hacker”; eval; Wednesday, December 21, 2011

Slide 38

Slide 38 text

PERL CULTURE - JAPH $_="krJhruaesrltre c a cnP,ohet"; $_.=$1,print$2while s/(..)(.)//; Wednesday, December 21, 2011

Slide 39

Slide 39 text

PERL ONLINE RESOURCES Modern Perl Book http://www.onyxneon.com/books/modern_perl/ index.html Israel Perl Mongers http://perl.org.il/ Wednesday, December 21, 2011

Slide 40

Slide 40 text

THANK YOU Ynon Perek [email protected] https://github.com/ynonp/ Adv-Perl-Examples ynonperek.com Wednesday, December 21, 2011