This morning on IRC we were talking about old perl installations, and how forgetting the use 5.010
but using 5.10 features, for example the //
operator, can be a problem.
I suggested maybe using a git hook would be an idea, so I assembled this proof of concept script to test for 5.10-isms but without a use 5.010;
statement. It's too long to include here, so I put in on Github (https://gist.github.com/1875528).
The script uses the "impossible" PPI module to parse the Perl code and extract information about used operators using PPI::Token::Operator
, to catch //
or ~~
or similar, and use
statements, with PPI::Statement::Include
.
It's meant to be run as part of a post-commit hook or similar. I had searched for similar modules in the Perl::Critic
space but found nothing of sorts. Maybe I just didn't look too well?
Anyway, https://gist.github.com/1875528. Enjoy.