Are there programmatic tools for Perl to Python conversion?

compilation, parsing, perl, python

Solution

James,

I recommend you to just rewrite the module in Python, for several reasons:

- Parsing Perl is DARN HARD. Unless this is an important and desirable exercise for you, you'll find yourself spending much more time on the translation than on useful work.

- By rewriting it, you'll have a great chance to practice Python. Learning is best done by doing, and having a task you really need done is a great boon.

- Finally, Python and Perl have quite different philosophies. To get a more Pythonic API, it's best to just rewrite it in Python.

Problem

In my new job more people are using Python than Perl, and I have a very useful API that I wrote myself and I'd like to make available to my co-workers in Python. I thought that a compiler that compiled Perl code into Python code would be really useful for such a task. Before trying to write something that parsed Perl (or at least, the subset of Perl that I've used in defining my API), I came across bridgekeeper from a consultancy. It's almost certainly not worth the money for me to engage a consultancy to translate this API, but that's a really interesting tool. Does anyone know of a compiler that will parse (or try to parse!) Perl5 code and compile it into Python? If there isn't such a thing, how should I start writing a simple compiler that parses my object-oriented Perl code and turns it into Python? Is there an ANTLR or YACC grammar that I can use as a starting point? Edit: I found perl.y, which might be a starting point if I were to roll my own compiler.

Original source