18
Why I am Passionate About Perl brian d foy [email protected]

Why I am Passionate About Perl -  · The Perl Review Volume 1, Issue 3 Summer 2005 Parser Combinators in Perl Testing Random Behavior Serious Perl Array Anti-Patterns Building GTK

  • Upload
    others

  • View
    3

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Why I am Passionate About Perl -  · The Perl Review Volume 1, Issue 3 Summer 2005 Parser Combinators in Perl Testing Random Behavior Serious Perl Array Anti-Patterns Building GTK

Why I am PassionateAbout Perl

brian d [email protected]

Page 2: Why I am Passionate About Perl -  · The Perl Review Volume 1, Issue 3 Summer 2005 Parser Combinators in Perl Testing Random Behavior Serious Perl Array Anti-Patterns Building GTK
Page 3: Why I am Passionate About Perl -  · The Perl Review Volume 1, Issue 3 Summer 2005 Parser Combinators in Perl Testing Random Behavior Serious Perl Array Anti-Patterns Building GTK

http://www.odinjobs.com/blogs/careers/entry/perl_experts_why_they_are

Perl ExpertsWhy They Are Passionate

About Perl

Page 4: Why I am Passionate About Perl -  · The Perl Review Volume 1, Issue 3 Summer 2005 Parser Combinators in Perl Testing Random Behavior Serious Perl Array Anti-Patterns Building GTK
Page 5: Why I am Passionate About Perl -  · The Perl Review Volume 1, Issue 3 Summer 2005 Parser Combinators in Perl Testing Random Behavior Serious Perl Array Anti-Patterns Building GTK
Page 6: Why I am Passionate About Perl -  · The Perl Review Volume 1, Issue 3 Summer 2005 Parser Combinators in Perl Testing Random Behavior Serious Perl Array Anti-Patterns Building GTK
Page 7: Why I am Passionate About Perl -  · The Perl Review Volume 1, Issue 3 Summer 2005 Parser Combinators in Perl Testing Random Behavior Serious Perl Array Anti-Patterns Building GTK

The Perl ReviewVolume 1, Issue 3 Summer 2005

Parser Combinators in Perl

Testing Random Behavior

Serious Perl

Array Anti-Patterns

Building GTK Apps with Glade

News, Reviews, and more...

The Perl ReviewVolume 2, Issue 0 Fall 2005

Logic Programming in Perl

Pod Indexing Project

Google’s Summer of Code

Visitor Design Pattern

Object-Oriented Perl

Perl news, reviews, and more...

Winter 2007 Volume 4, Issue 1

leavesub

lineseq

nextstatepush

pushmarkpadav shift

gv

rv2av

anon_1

leavesub

lineseq

nextstateaassignnextstateaassign nextstate printnextstate printnextstate print nextstate null nextstatepadhv nextstateaassign nextstate leaveloop

pushmark

listlist

rv2av

pushmark gvpadsvpadav

pushmark

list list

entersub

pushmark pushmark

list

shift rv2cv

gv

rv2av

gv

padav

pushmark constpushmark stringify

const

pushmarkconcat

concatconst

rv2sv

gvsv

pushmark join const

pushmark const mapwhile

pushmark

mapstart

nullpadav

null

scope

nextstatestringify

const

pushmarkconcat

rv2sv

gvsv

rv2sv

padav

and

eq return

padav

pushmark

pushmark

listlist

repeat

pushmark

pushmark

list

constpadav

hslice

pushmarkmapwhile padhv

pushmark

mapstart

null padav

null

scope

nextstaterv2sv

gvsv

rv2sv

pushmark

enteriter null

pushmark list gv

iter

padav

and

lineseq

nextstate nullnextstate null nextstate printunstack

padhv

and

exists next

helem

rv2sv

gvsv

rv2sv

pushmark

or

nullnext

and

entersub rv2sv

rv2sv method_named

gvsv

leave

enter nextstateentersub

pushmarkrv2sv method_named

gvsv

pushmark concatconst

const join

pushmark const mapwhile

pushmark

mapstart

nullrv2sv entersub

gvsv null

scope

nextstate stringify

const

pushmark concat

rv2sv

gvsv

rv2sv

pushmark rv2sv method_named

gvsv

chart_execution

leavesub

lineseq

nextstatesassignnextstateprint

gv

shiftpadsv

rv2av

pushmarkconcat

const

concat const

concatrv2sv

concatstringify

padsv

concatconst

const

concatrv2sv

stringifystringifypadsv

pushmarkconcat

pushmark

concat const

const

concathelem

concatconst

padsv

helem

padsv

rv2hvconst

rv2hvconst

concat

concat const

helem

padsv

rv2hvconst

scope

nextstatehelem

rv2hvconst

pushmarkconcat

concatconst

helem

padsv

rv2hv const

scope

nextstate helem

rv2hv const

chart_entrypoints

leavesub

lineseq

nextstatesassignnextstate padavnextstateentersubnextstatereturn

gv

shiftpadsv

rv2av

pushmark

list

padsvrefgen rv2cv

pushmark

list gv

anoncode

pushmarkpadav

gather_all_subnodes

leavesub

lineseq

nextstate sassign nextstate sassign nextstate null nextstate null nextstate return

gv

shift padsv

rv2av

pushmark

entersub padsv

list

padsv rv2cv

gv

gv

and

exists return

helem

rv2hv padsv

pushmark helem

gv

rv2hv padsv

gv

or

rv2av die

pushmark const

pushmark sassign

gv

shift helem

rv2av

gv

rv2hv padsv

colour_for_op

leavesub

lineseq

nextstate entersub nextstate return

pushmark

list

rv2cv

gv

pushmark padhv

all_roots

leavesub

lineseq

nextstatesassignnextstatenull nextstate aassign nextstate leavenextstatereturn

gv

shiftpadsv

rv2av

padsv

or

return

pushmark pushmark

list list

padsv

pushmarkpadav

enter null

pushmark

and

null lineseq

and

sassignne

entersub padsv

padsv method_named

rv2sv const

padsv

pushunstack

pushmark padav padsv

pushmarkpadav

chain_build

leavesub

lineseq

nextstateaassignnextstate print nextstate nextstate leaveloop

pushmark

listlist

rv2av

pushmark gvpadav

pushmark const pushmark

enteriter null

pushmark list gv

iter

padav

and

lineseq

prtfunstack

pushmark const rv2sv entersub entersub

gvsv

rv2sv pushmark rv2sv method_named pushmark

gvsv list

rv2sv rv2cv

gvsv

gv

chart_nodes

leavesub

lineseq

nextstatesassignnextstatenull nextstate list nextstatesassign lineseq nextstate aassign nextstate return

gv

shiftpadsv

rv2av

pushmark

or

bit_andreturn

entersub const

padsv method_named

pushmark

pushmark padav padsv pushmark

entersubpadsv

nextstatepadsv method_named leaveloop

enterloop null

padsv

and

rv2sv lineseq

scope sassignunstack

nextstatepush

pushmarkpushmarkpadavpadsv

entersubpadsv

padsv method_named

pushmark

list list

grepwhile

pushmarkpushmark

grepstart

nullpadav

null

scope

nextstatenull

gvsv

and

null gt

and

definedref

rv2svrv2sv

gvsv

rv2sv const

rv2sv

gvsv

padav

pushmark padav

children

leavesub

lineseq

nextstate entersub nextstate return

pushmark

list

rv2cv

gv

pushmark padhv

all_starts

leavesub

lineseq

nextstate aassignnextstateprintnextstate print nextstateleaveloop

pushmark

list list

rv2av

pushmarkgv padav

pushmarkconstpushmark stringify

const

pushmark concat

concat const

rv2sv

gvsv

pushmark

enteriternull

pushmarklistiter

padav

and

lineseq

nextstateaassignnextstate nullnextstate nextstateleaveloop unstack

pushmark

listlist

entersub

pushmark pushmark

list

padsv rv2cv

gv

padav

padav

or

next pushmark

enteriternull

pushmarklistgv

iter

padav

and

lineseq

prtf unstack

pushmark const rv2sv rv2sv

padsv

gvsv

rv2sv

chart_children

leavesub

lineseq

nextstateaassignnextstatesassign nextstate aassign nextstateprintnextstate entersub nextstateentersubnextstateentersub nextstateentersubnextstate printnextstateentersub

pushmark

listlist

rv2av

pushmark gvpadsv

const

concathelem

rv2sv

padsv

padsv

scope

nextstate helem

rv2hvconstrv2hv const

pushmark

list list

entersub

pushmarkpushmark

list

helem rv2cv

padsv

rv2hvconst

gv

padav

pushmarkconcat

const

concat const

concat const

stringifyconst

pushmarkconcat

concat const

helem

padsv

rv2hvconst

pushmark

list

padavrv2cv

gv

pushmark

list

padav rv2cv

gv

pushmark

list

helem padavrv2cv

padsv

rv2hvconst

gv

pushmark

list

padsv rv2cv

gv

pushmark constpushmark

list

padav rv2cv

gv

graph_cv

leave

enter nextstate sassignnextstate sassign nextstate aassign nextstate rv2hv nextstateentersub

const rv2sv

gvsv

const rv2sv

gvsv pushmark

list list

const const const const const const constconst const const const const const const const

pushmark rv2av

gv

gv pushmark

list

rv2cv

gv

__MAIN__

leavesub

lineseq

nextstatesassignnextstateaassign nextstateaassign nextstate padav nextstate nextstateleaveloop nextstate nextstateleaveloopnextstate nextstate leaveloopnextstate padhv nextstate aassignnextstatereturn

constpadsv

pushmark

listlist

entersub

pushmark pushmark

list

rv2cv

gv

padhv

pushmark

listlist

entersub

pushmark pushmark

list

rv2cv

gv

padhv

pushmark

enteriternull

pushmark list gv

iter

keys

padhv

and

lineseq

push unstack

pushmark padavsrefgen

pushmarklist

anonhash

constrv2sv const helem const helem

gvsv padhv rv2sv

gvsv

padhv rv2sv

gvsv

pushmark

enteriternull

pushmark list gv

iter

entersub

pushmark

list

rv2cv

gv

and

lineseq

push unstack

pushmarkpadav srefgen

pushmark list

anonhash

constconcat const helem const helem

constpostinc

padsv

gv

rv2hv const

rv2sv

gv

rv2hv const

rv2sv

pushmark

enteriter null

pushmark list gv

iter

padav

and

lineseq

substunstack

helemconst

rv2hvconst

rv2sv

gv

pushmark

list list

grepwhile

pushmarkpushmark

grepstart

nullpadav

null

scope

nextstatenot

padhv

postinc

helem

rv2sv

gv

scope

nextstate helem

rv2hv const

rv2sv

padav

pushmarkrefgen

pushmark

list

padav

build_root_records

leavesub

lineseq

nextstateaassignnextstateprintnextstateleaveloop

pushmark

list list

rv2av

pushmark gv padav

pushmarkconstpushmark

enteriternull

pushmark listiter

padav

and

lineseq

nextstateaassign nextstatenullnextstate print unstack

pushmark

listlist

entersub

pushmark pushmark

list

padsv rv2cv

gv

padav

padav

or

gtnext

const pushmark concat

const

concat const

join

pushmark constmapwhile

pushmark

mapstart

null padav

null

scope

nextstatestringify

const

pushmarkconcat

rv2sv

gvsv

rv2sv

chart_ranks

leavesub

lineseq

nextstatesassignnextstate sassign nextstate substnextstatereturn

gv

shiftpadsv

rv2av

padsv

ref padsv

padsv constpushmarkpadsv

class

leavesub

lineseq

nextstate aassign nextstatenull nextstate entersub nextstatenull

pushmark

list list

rv2av

pushmarkgv padsv padsv padsv

pushmark

and

entersub aassign

padsv const method_named

list list

pushmark entersub entersub

pushmarkpushmark padsv method_named pushmark padsv method_named rv2sv rv2sv

gvsv

gvsv

pushmark

list

padsv padsvrv2cv

padsv

padsv

and

null leave

and

rv2sv bit_and

entersub const

pushmark padsv method_named

enter nextstate padsv nextstate sassign lineseq

pushmark

entersub padsv

nextstatepadsv method_named leaveloop

enterloopnull

padsv

and

rv2sv lineseq

scope sassign unstack

nextstateentersub

pushmarkpushmark

list

padsv padsv padsvrv2cv

gv entersub padsv

padsv method_named

walkoptree_simple

leavesub

lineseq

nextstate entersub nextstate return

pushmark

list

rv2cv

gv

pushmark padav

anon_subs

leavesub

lineseq

nextstate sassignnextstateprintnextstate sassign nextstate null nextstate warn nextstateentersubnextstateprint

pushmark

entersub padsv

list

rv2cv

gv

pushmarkconstgv

shift padsv

rv2av

padsv

and

gt die

av2arylen

padsv

rv2av pushmarkstringify

const

pushmarkconcat

concatconst

concatav2arylen

concat const

padsv

padsv

rv2av

pushmark concat

padsv

stringify helem

pushmark concat

padsv

concatconst

concat av2arylen

const

padsv

rv2av

rv2hv const

aelem

rv2av padsv

pushmark

list

aelemrv2cv

padsv

rv2av padsv

gv

pushmarkconst

digraph

pushmarkrv2av

pushmark gvpadsvpadav

pushmark const

null

iter

and

lineseq

nextstate nullnextstate null nextstateunstack

padhv

and

exists next

helem

rv2sv

gvsv

rv2sv

pushmark

or

nullnext

gvs

Inside:

Parrot Status Report

CPANdeps

Mapping Op Codes

Alter Egos

HTML Slides

Simple Web Access

PERLTHEREVIEW

Page 8: Why I am Passionate About Perl -  · The Perl Review Volume 1, Issue 3 Summer 2005 Parser Combinators in Perl Testing Random Behavior Serious Perl Array Anti-Patterns Building GTK
Page 9: Why I am Passionate About Perl -  · The Perl Review Volume 1, Issue 3 Summer 2005 Parser Combinators in Perl Testing Random Behavior Serious Perl Array Anti-Patterns Building GTK
Page 10: Why I am Passionate About Perl -  · The Perl Review Volume 1, Issue 3 Summer 2005 Parser Combinators in Perl Testing Random Behavior Serious Perl Array Anti-Patterns Building GTK

http

://w

ww.

bbsp

ot.c

om/N

ews/2

006/

08/la

ngua

ge_q

uiz.

php

Page 11: Why I am Passionate About Perl -  · The Perl Review Volume 1, Issue 3 Summer 2005 Parser Combinators in Perl Testing Random Behavior Serious Perl Array Anti-Patterns Building GTK

• The person who introduced me to Perl showed me that…

• I first starting using Perl to…

• I kept using Perl because…

• I canʼt stop thinking about Perl…

• Iʼm still using Perl because…

• I get other people to use Perl by…

• I also program in … and …, but I like Perl better since…

Page 12: Why I am Passionate About Perl -  · The Perl Review Volume 1, Issue 3 Summer 2005 Parser Combinators in Perl Testing Random Behavior Serious Perl Array Anti-Patterns Building GTK

Jerry

Roc

teur

http

://w

ww.

roct

eur.c

c/ge

eklo

g/ar

ticle

.php

?sto

ry=2

0080

5102

0322

4474

Page 13: Why I am Passionate About Perl -  · The Perl Review Volume 1, Issue 3 Summer 2005 Parser Combinators in Perl Testing Random Behavior Serious Perl Array Anti-Patterns Building GTK

Alb

erto

Sim

ões

http

://us

e.pe

rl.or

g/~a

mbs

/jour

nal/3

6357

Page 14: Why I am Passionate About Perl -  · The Perl Review Volume 1, Issue 3 Summer 2005 Parser Combinators in Perl Testing Random Behavior Serious Perl Array Anti-Patterns Building GTK

Jaci

nta

Rich

ards

onht

tp://

use.

perl.

org/

~jar

ich/

jour

nal/3

6365

Page 15: Why I am Passionate About Perl -  · The Perl Review Volume 1, Issue 3 Summer 2005 Parser Combinators in Perl Testing Random Behavior Serious Perl Array Anti-Patterns Building GTK

Gra

nt M

cLea

nht

tp://

use.

perl.

org/

~gra

ntm

/jour

nal/3

6506

Page 16: Why I am Passionate About Perl -  · The Perl Review Volume 1, Issue 3 Summer 2005 Parser Combinators in Perl Testing Random Behavior Serious Perl Array Anti-Patterns Building GTK

René

e Bä

cker

http

://us

e.pe

rl.or

g/~r

enee

b/jo

urna

l/363

66

Page 17: Why I am Passionate About Perl -  · The Perl Review Volume 1, Issue 3 Summer 2005 Parser Combinators in Perl Testing Random Behavior Serious Perl Array Anti-Patterns Building GTK

Rafa

el G

arcia

-Sua

rez

http

://co

nstty

pe.b

logs

pot.c

om/2

008/

05/w

hy-p

eopl

e-ar

e-pa

ssio

nate

-abo

ut-p

erl.h

tml

Page 18: Why I am Passionate About Perl -  · The Perl Review Volume 1, Issue 3 Summer 2005 Parser Combinators in Perl Testing Random Behavior Serious Perl Array Anti-Patterns Building GTK

bria

n d

foy