in reply to Hacking Perl Code
B::Deparse can help you de-obfuscate code a bit
ppi_dumper can help you intrepret code without running it (tells you what friendly manual to read )
$ ppi_dumper carliz-hacking.pl PPI::Document PPI::Token::Whitespace '\n' PPI::Statement::Variable PPI::Token::Word 'my' PPI::Token::Whitespace ' ' PPI::Token::Symbol '$file' PPI::Token::Whitespace ' ' PPI::Token::Operator '=' PPI::Token::Whitespace ' ' PPI::Token::Symbol '$ARGV' PPI::Structure::Subscript [ ... ] PPI::Statement::Expression PPI::Token::Number '0' PPI::Token::Structure ';' PPI::Token::Whitespace '\n' PPI::Statement::Variable PPI::Token::Word 'my' PPI::Token::Whitespace ' ' PPI::Token::Symbol '$content' PPI::Token::Whitespace ' ' PPI::Token::Operator '=' PPI::Token::Whitespace ' ' PPI::Token::Word 'do' PPI::Token::Whitespace ' ' PPI::Structure::Block { ... } PPI::Token::Whitespace ' ' PPI::Statement PPI::Token::Word 'open' PPI::Token::Whitespace ' ' PPI::Token::Word 'my' PPI::Token::Whitespace ' ' PPI::Token::Symbol '$fh' PPI::Token::Operator ',' PPI::Token::Whitespace ' ' PPI::Token::Quote::Single ''<'' PPI::Token::Operator ',' PPI::Token::Whitespace ' ' PPI::Token::Symbol '$file' PPI::Token::Whitespace ' ' PPI::Token::Operator 'or' PPI::Token::Whitespace ' ' PPI::Token::Word 'die' PPI::Token::Whitespace ' ' PPI::Token::Magic '$!' PPI::Token::Structure ';' PPI::Token::Whitespace ' ' PPI::Statement::Variable PPI::Token::Word 'local' PPI::Token::Whitespace ' ' PPI::Token::Magic '$/' PPI::Token::Structure ';' PPI::Token::Whitespace ' ' PPI::Statement PPI::Token::Operator '<' PPI::Token::Symbol '$fh' PPI::Token::Operator '>' PPI::Token::Whitespace ' ' PPI::Token::Structure ';' PPI::Token::Whitespace '\n' PPI::Statement::Variable PPI::Token::Word 'my' PPI::Token::Whitespace ' ' PPI::Token::Symbol '$begin' PPI::Token::Whitespace ' ' PPI::Token::Operator '=' PPI::Token::HereDoc '<<'THEEND'' PPI::Token::Structure ';' PPI::Token::Whitespace '\n' PPI::Token::Whitespace '\n' PPI::Statement PPI::Token::Word 'eval' PPI::Token::Whitespace ' ' PPI::Token::Symbol '$begin' PPI::Token::Operator '.' PPI::Token::Symbol '$content' PPI::Token::Structure ';' PPI::Token::Whitespace '\n' PPI::Statement PPI::Token::Word 'print' PPI::Token::Whitespace ' ' PPI::Token::Magic '$@' PPI::Token::Whitespace ' ' PPI::Token::Word 'if' PPI::Token::Whitespace ' ' PPI::Token::Magic '$@' PPI::Token::Structure ';' PPI::Token::Whitespace '\n' PPI::Token::Whitespace '\n'
OPerators are documented in perlop, functions in perlfunc, magic variables in perlvar ... its just a matter of looking up each piece you're unsure about... perldoc -f eval
Tutorials: Perl documentation documentation, Searching Perl Documentation, How to Read The Fine Friendly Manual
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re^2: Hacking Perl Code (Deparse ppi_dumper perldoc)
by Anonymous Monk on Apr 08, 2014 at 20:41 UTC | |
|
Re^2: Hacking Perl Code (Deparse ppi_dumper perldoc)
by carlriz (Beadle) on Apr 08, 2014 at 20:40 UTC |