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