in reply to Deparse isn't as reliable as I thought

One of the marks of a good obfuscation is one that runs fine as coded, but fails to run in its B::Deparse'd version. B::Deparse isn't perfect. Only perl can 100% reliably parse Perl. And even then it's probably only 99.99999% reliable. ;)


Dave

Replies are listed 'Best First'.
Re^2: Deparse isn't as reliable as I thought
by diotalevi (Canon) on Mar 04, 2006 at 06:03 UTC

    Deparse doesn't parse perl either. It generates perl. Every time Deparse fails to produce source code that compiles back to the same thing, that's a bug. There are no obfuscations that should be undeparseable.

    ⠤⠤ ⠙⠊⠕⠞⠁⠇⠑⠧⠊

      What about BEGIN { close STDOUT; }? (No, I'm not entirely serious here.)

        You might as well be. To deparse that, you'd want B::Deparse to be able to write to a file instead of just STDOUT.

        ⠤⠤ ⠙⠊⠕⠞⠁⠇⠑⠧⠊

      Agreed. Several modules depend on the proper functioning of B::Deparse. If there is a difference, you should report the bug with perlbug. Please provide the test scripts so this can problem can be investigated.