Static Code Analysis For Perl

20 minutes

Intermediate

English 

Statically typed languages are on the rise these days.
One particular advantage that statically typed languages bring is the ability to run static analysis on the source code. Static analysis allows you to find unused variables, find irregular coding styles within the source, and analyze dependency between modules/classes WITHOUT actually running the code.

On the other hand, dynamically typed languages such as Perl have their advantages. Static analysis, however, is not in the list of those advantages. In fact, it's incredibly hard to perform static analysis on Perl.
But wouldn't it be cool if you could do it? You would be able to harness the true power of Perl, all while being able to systematically check for potential problems before running the code.

In this talk, I will be talking the state of things around performing static analysis on Perl code: tools, attempts, and also Perl::Lint, which is a tool I have created with the help of TPF grants to perform static analysis.

(English translation provided by Daisuke Maki, thank you very much!) 

qa

Attended by:
Tom Hukins
H.Merijn Brand (‎Tux‎)
Junichi Ishida (‎uzulla‎)
Aaron Crane (‎arc‎)
Michael Scoltock (‎mscolly‎)
Jose Luis Perez Diez (‎jluis‎)
Iaroslav Poliakov
Patrick Mevzek
Anthony Lucas (‎hor|zon‎)
Ali Zia
Salve J. Nilsen (‎sjn‎)
Dagfinn Ilmari Mannsåker (‎ilmari‎)
Alex Muntada (‎alexm‎)
osfameron
Kerstin Puschke (‎titanoboa‎)
Radosław Pociecha
Kenneth Power
Nicholas Clark
Michael Kröll (‎pepl‎)
Thomas Heine
Radyslav Liaskovskyi (‎Radislav‎)
Søren Lund (‎slu‎)
Gianni Ceccarelli (‎dakkar‎)
Markus Förster
Ivan Dmitriev
David Escribano
Stevan Little (‎stevan‎)
Heinz Knutzen
Lukas Mai (‎mauke‎)
FErki
Upasana Shukla (‎upasana‎)
Choroba
Lars Thegler (‎tagg‎)
Todd Rinaldo (‎toddr‎)
Mark Nettlingham
Rish
Anatoly Grishaev
Herbert Breunung (‎lichtkind‎)
Markus Pinkert (‎Bedivere‎)
Steffen Schwigon (‎renormalist‎)
Radek Kotowicz
DrForr
Mihai Safta (‎SDCM‎)
Joaquín Ferrero (‎explorer‎)
Dmitry Karasik (‎McFist‎)
Olivier Duclos (‎odc‎)
Mike Chamberlain
Michal Jurosz (‎mj41‎)
Lee Johnson
Kenta Sato (‎karupanerura‎)
Roland Schmitz (‎roli‎)
Alberto Simões (‎ambs‎)
Annette Steinhauer
James E Keenan (‎kid51‎)
Ilya Chesnokov (‎ichesnokov‎)
Eleatzar Colomer (‎eleatzar‎)
Marco Pessotto (‎melmothx‎)
Roberto Henríquez
Richard van Lochem (‎rvlochem‎)
Miroslav Tynovsky
Dotan Dimet (‎dotandimet‎)
Alexey Surikov (‎ksurent‎)
Ivan Kruglov
Maxim Vuets (‎mvuets‎)
Rui Patinha (‎rfp‎)
Paul Cochrane (‎ptc‎)
Rikus Goodell
John Lightsey (‎J.D.‎)
Andrey Shitov (‎ash‎)
Salvador Fandiño (‎salva‎)
Naim Shafiyev (‎shafiev‎)
Jussi Kinnula (‎Spot‎)
Anatoliy Dmytriyev (‎tolid‎)
Nicolas Vigier (‎boklm‎)
Martin Kjeldsen (‎baest‎)
Sue Mynott (‎virtualsue‎)
Joeri de Bruin (‎dapperedodo‎)
John van Krieken (‎vladtz‎)
Reini Urban (‎rurban‎)
Martin Cermak
Jean Forget
Martin Doppelreiter
Martin Waldherr (‎mwal‎)
Alberte Thegler
Henrik Andersen (‎HEM‎)
Michal Josef Špaček (‎skim‎)
Thomas Reifenberger
Steffen Winkler (‎STEFFENW‎)
Nuno Carvalho (‎smash‎)
Dirk De Nijs (‎ddn123456‎)