Upload
others
View
3
Download
0
Embed Size (px)
Citation preview
Why I am PassionateAbout Perl
brian d [email protected]
http://www.odinjobs.com/blogs/careers/entry/perl_experts_why_they_are
Perl ExpertsWhy They Are Passionate
About Perl
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
http
://w
ww.
bbsp
ot.c
om/N
ews/2
006/
08/la
ngua
ge_q
uiz.
php
• 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…
Jerry
Roc
teur
http
://w
ww.
roct
eur.c
c/ge
eklo
g/ar
ticle
.php
?sto
ry=2
0080
5102
0322
4474
Alb
erto
Sim
ões
http
://us
e.pe
rl.or
g/~a
mbs
/jour
nal/3
6357
Jaci
nta
Rich
ards
onht
tp://
use.
perl.
org/
~jar
ich/
jour
nal/3
6365
Gra
nt M
cLea
nht
tp://
use.
perl.
org/
~gra
ntm
/jour
nal/3
6506
René
e Bä
cker
http
://us
e.pe
rl.or
g/~r
enee
b/jo
urna
l/363
66
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
bria
n d
foy