I spent some spare time writing a Python -> Perl interface. The existing solution pyperl was originally written for very old versions of Python and doesn't compile anymore. In the mean time, writing C extensions to Python has become much easier thanks to Cython. I thought it made sense to start from scratch and wrote PyPerler. I thankfully made use of the PyPerl's Perl code for wrapping a Python object. On the Python side, everything is new.
PyPerler gives you the power of CPAN, and your (legacy?) perl packages, in Python. Using Perl stuff is as easy as:
>>> import pyperler; i = pyperler.Interpreter()
>>> # use a CPAN module
>>> Table = i.use('Text::Table')
>>> t = Table("Planet", "Radius\nkm", "Density\ng/cm^3")
>>> _ = t.load(
... [ "Mercury", 2360, 3.7 ],
... [ "Venus", 6110, 5.1 ],
... [ "Earth", 6378, 5.52 ],
... [ "Jupiter", 71030, 1.3 ],
... )
>>> for line in t.table(): print line
Planet Radius Density
km g/cm^3
Mercury 2360 3.7
Venus 6110 5.1
Earth 6378 5.52
Jupiter 71030 1.3
If you install the Class::Inspector
CPAN package, then PyPerler will
even get you introspection for use in IPython.