calling perl modules from python

Mirco Wahab wahab at chemie.uni-halle.de
Thu May 11 17:40:50 EDT 2006


Hi David

> I have a hash function written by another organization that I need to use.
> It is implemented in perl. I've been attempting to decode what they are
> doing in their hash  function and it is taking way too long. I've
> identified two functions in a perl module that I would like to 'call' from
> a python program. I found the following:
> http://www.annocpan.org/~GAAS/pyperl-1.0/perlmodule.pod
> 
> and wondered if anyone had any comments. This thing implements a perl
> interpreter inside python. That seems like overkill to me.
> 
> I wonder what wisdom this group can offer.

Why not the other way around.
Use their .pl-program and
use the functions inside it -
then cross-call in to your
python module:

[--- someperl.pl ---]
  py_prepare

  $result1 = hash_proc_1($whatever);
  $result2 = hash_proc_2($whatever);

  py_calculate( $result1, $result2 );

  # - - - - - - - - - - - - - - - - - - #

  use Inline Python => <<'END_OF_PYTHON_CODE';

    def py_calculate (r1, r2):
       do_something(r1 * r2)

    def do_something(result):
       return x - y

  END_OF_PYTHON_CODE
  [/--- someperl.pl ---]

This approach ensures that the
strange perl functions run clean
int their native environment.

You have access to all your py-
Modules, as in a normal python-
environment (Python globals are
directly imported, afaik).

    [--- someperl.pl ---]
    use Inline Python;

    doit();

    __END__
    __Python__

    from mylibrary import doit
    ...
    ...
    [/--- someperl.pl ---]

(http://search.cpan.org/~neilw/Inline-Python-0.22/Python.pod)

I use this sometimes, it is quite nice.

Regards

M.



More information about the Python-list mailing list