Re: call subroutine by pyperl

Tommy Ditlev Henriksen <[email protected]> Wed, 31 Mar 2010 16:40:42 +0200
Newsgroups gmane.comp.web.zope.perl
Message-ID <[email protected]>
--===============9004421515182002211==
Content-Type: multipart/alternative; boundary=000325554e4610d276048319bbbc

--000325554e4610d276048319bbbc
Content-Type: text/plain; charset=ISO-8859-1

I look at it some time ago, and had some problems with pointer errors.

I decided to use an JSON gw instead.

If any interrest Ill be happy to share!
 kr
 Tommy

On Wed, Mar 31, 2010 at 3:23 PM, DmitriKo <[email protected]> wrote:

> Hey, Kenny.
>
> I offer to stop wasting your time on that cool by marginal solution.
>
> Please use old good tools for inter program communication.
>
> $ perl test.pm | python test.py
>
> as example where output from test.pm come to sys.stdin in python test.py
>
> use json, xml, text ... with easy.
>
> --
> DmitriKo
>
> On Wed, Mar 31, 2010 at 4:01 PM, Kenny <[email protected]>
> wrote:
> > Dear all,
> >
> > I have a question about pyperl.
> >
> > there is a perl module test.pm:
> > #! /usr/bin/perl
> > package tset
> > sub Cal {
> > my ($v1,$v2)=@_;
> > my $result=$v1+$v2;
> > }
> > print "this is a test \n";
> > 1;
> >
> > And there is a python file that calls the module above,
> > import perl
> > perl.require("test");
> > #perl.call("Usage","test1.pl")
> > #perl.call("test::Usage", "1")
> > b=perl.call("test::Cal", 1, 1)
> > print b
> >
> > when run, I got a error message shown below: (can anyone tell me the
> reason?
> > many thanks)
> > ##################################error message####################
> > kenny@kenny-laptop:~/Desktop$ python test.py
> > it is a test
> > 2
> > *** glibc detected *** python: free(): invalid pointer: 0xb7d7b1a0 ***
> > ======= Backtrace: =========
> > /lib/tls/i686/cmov/libc.so.6[0xb7e02a85]
> > /lib/tls/i686/cmov/libc.so.6(cfree+0x90)[0xb7e064f0]
> > /usr/lib/python2.5/site-packages/perl2.so[0xb7cc772d]
> > python[0x80855a9]
> > python(PyDict_SetItem+0x6e)[0x8086f8e]
> > python(_PyModule_Clear+0x158)[0x8088bf8]
> > python(PyImport_Cleanup+0x152)[0x80de3d2]
> > python(Py_Finalize+0xbf)[0x80ea41f]
> > python(Py_Main+0x468)[0x8058d68]
> > python(main+0x22)[0x80587f2]
> > /lib/tls/i686/cmov/libc.so.6(__libc_start_main+0xe0)[0xb7dad450]
> > python[0x8058761]
> > ======= Memory map: ========
> > 08048000-08140000 r-xp 00000000 08:05 2613978    /usr/bin/python2.5
> > 08140000-08165000 rw-p 000f7000 08:05 2613978    /usr/bin/python2.5
> > 08165000-08284000 rw-p 08165000 00:00 0          [heap]
> > b7900000-b7921000 rw-p b7900000 00:00 0
> > b7921000-b7a00000 ---p b7921000 00:00 0
> > b7a44000-b7a4e000 r-xp 00000000 08:05 1409036    /lib/libgcc_s.so.1
> > b7a4e000-b7a4f000 rw-p 0000a000 08:05 1409036    /lib/libgcc_s.so.1
> > b7a5b000-b7a68000 r-xp 00000000 08:05 3008570
> > /usr/local/lib/perl/5.8.8/auto/Python/Object/Object.so
> > b7a68000-b7a69000 rw-p 0000c000 08:05 3008570
> > /usr/local/lib/perl/5.8.8/auto/Python/Object/Object.so
> > b7a69000-b7a8a000 rw-p b7a69000 00:00 0
> > b7a8a000-b7b6b000 r--p 00000000 08:05 2638705
> > /usr/lib/locale/en_US.utf8/LC_COLLATE
> > b7b6b000-b7b74000 r-xp 00000000 08:05 1426495
> > /lib/tls/i686/cmov/libcrypt-2.7.so
> > b7b74000-b7b76000 rw-p 00008000 08:05 1426495
> > /lib/tls/i686/cmov/libcrypt-2.7.so
> > b7b76000-b7b9d000 rw-p b7b76000 00:00 0
> > b7b9d000-b7cb8000 r-xp 00000000 08:05 2613267
> /usr/lib/libperl.so.5.8.8
> > b7cb8000-b7cbd000 rw-p 0011a000 08:05 2613267
> /usr/lib/libperl.so.5.8.8
> > b7cbd000-b7cbf000 rw-p b7cbd000 00:00 0
> > b7cbf000-b7ccb000 r-xp 00000000 08:05 705539
> > /usr/lib/python2.5/site-packages/perl2.so
> > b7ccb000-b7ccc000 rw-p 0000b000 08:05 705539
> > /usr/lib/python2.5/site-packages/perl2.so
> > b7ccc000-b7ccd000 r-xp 00000000 08:05 705537
> > /usr/lib/python2.5/site-packages/perl.so
> > b7ccd000-b7cce000 rw-p 00000000 08:05 705537
> > /usr/lib/python2.5/site-packages/perl.so
> > b7cce000-b7cd5000 r--s 00000000 08:05 2622378
> > /usr/lib/gconv/gconv-modules.cache
> > b7cd5000-b7d14000 r--p 00000000 08:05 2638706
> > /usr/lib/locale/en_US.utf8/LC_CTYPE
> > b7d14000-b7d97000 rw-p b7d14000 00:00 0
> > b7d97000-b7ee0000 r-xp 00000000 08:05 1426493
> > /lib/tls/i686/cmov/libc-2.7.so
> > b7ee0000-b7ee1000 r--p 00149000 08:05 1426493
> > /lib/tls/i686/cmov/libc-2.7.so
> > b7ee1000-b7ee3000 rw-p 0014a000 08:05 1426493
> > /lib/tls/i686/cmov/libc-2.7.so
> > b7ee3000-b7ee6000 rw-p b7ee3000 00:00 0
> > b7ee6000-b7f09000 r-xp 00000000 08:05 1426497
> > /lib/tls/i686/cmov/libm-2.7.so
> > b7f09000-b7f0b000 rw-p 00023000 08:05 1426497
> > /lib/tls/i686/cmov/libm-2.7.so
> > b7f0b000-b7f0d000 r-xp 00000000 08:05 1426512
> > /lib/tls/i686/cmov/libutil-2.7.so
> > b7f0d000-b7f0f000 rw-p 00001000 08:05 1426512
> > /lib/tls/i686/cmov/libutil-2.7.so
> > b7f0f000-b7f10000 rw-p b7f0f000 00:00 0
> > b7f10000-b7f12000 r-xp 00000000 08:05 1426496
> > /lib/tls/i686/cmov/libdl-2.7.so
> > b7f12000-b7f14000 rw-p 00001000 08:05 1426496
> > /lib/tls/i686/cmov/libdl-2.7.so
> > b7f14000-b7f28000 r-xp 00000000 08:05 1426507
> > /lib/tls/i686/cmov/libpthread-2.7.so
> > b7f28000-b7f2a000 rw-p 00013000 08:05 1426507
> > /lib/tls/i686/cmov/libpthread-2.7.so
> > b7f2a000-b7f2c000 rw-p b7f2a000 00:00 0
> > b7f2d000-b7f2e000 rw-p b7f2d000 00:00 0
> > b7f2e000-b7f2f000 r--p 00000000 08:05 2638723
> > /usr/lib/locale/en_US.utf8/LC_NUMERIC
> > b7f2f000-b7f30000 r--p 00000000 08:05 2637982
> > /usr/lib/locale/en_US.utf8/LC_TIME
> > b7f30000-b7f31000 r--p 00000000 08:05 2637983
> > /usr/lib/locale/en_US.utf8/LC_MONETARY
> > b7f31000-b7f32000 r--p 00000000 08:05 2646018
> > /usr/lib/locale/en_US.utf8/LC_MESSAGES/SYS_LC_MESSAGES
> > b7f32000-b7f33000 r--p 00000000 08:05 2638724
> > /usr/lib/locale/en_US.utf8/LC_PAPER
> > b7f33000-b7f34000 r--p 00000000 08:05 2638722
> > /usr/lib/locale/en_US.utf8/LC_NAME
> > b7f34000-b7f35000 r--p 00000000 08:05 2637984
> > /usr/lib/locale/en_US.utf8/LC_ADDRESS
> > b7f35000-b7f36000 r--p 00000000 08:05 2637985
> > /usr/lib/locale/en_US.utf8/LC_TELEPHONE
> > b7f36000-b7f37000 r--p 00000000 08:05 2637986
> > /usr/lib/locale/en_US.utf8/LC_MEASUREMENT
> > b7f37000-b7f38000 r--p 00000000 08:05 2637987
> > /usr/lib/locale/en_US.utf8/LC_IDENTIFICATION
> > b7f38000-b7f3a000 rw-p b7f38000 00:00 0
> > b7f3a000-b7f3b000 r-xp b7f3a000 00:00 0          [vdso]
> > b7f3b000-b7f55000 r-xp 00000000 08:05 1409643    /lib/ld-2.7.so
> > b7f55000-b7f57000 rw-p 00019000 08:05 1409643    /lib/ld-2.7.so
> > bfb9e000-bfbb3000 rw-p bffeb000 00:00 0          [stack]
> > Aborted
> >
> > --
> > Best regards,
> >
> > Kenny
> >
> > _______________________________________________
> > Zope-perl maillist  -  [email protected]
> > https://mail.zope.org/mailman/listinfo/zope-perl
> >
> >
> _______________________________________________
> Zope-perl maillist  -  [email protected]
> https://mail.zope.org/mailman/listinfo/zope-perl
>



-- 
Tommy Ditlev Henriksen
email: [email protected]

--000325554e4610d276048319bbbc
Content-Type: text/html; charset=ISO-8859-1
Content-Transfer-Encoding: quoted-printable

I look at it some time ago, and had some problems with pointer errors.<br><=
br>I decided to use an JSON gw instead.<br><br>If any interrest Ill be happ=
y to share!<br>=A0kr<br>=A0Tommy<br><br><div class=3D"gmail_quote">On Wed, =
Mar 31, 2010 at 3:23 PM, DmitriKo <span dir=3D"ltr">&lt;<a href=3D"mailto:d=
[email protected]">[email protected]</a>&gt;</span> wrote:<br>
<blockquote class=3D"gmail_quote" style=3D"border-left: 1px solid rgb(204, =
204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">Hey, Kenny.<br>
<br>
I offer to stop wasting your time on that cool by marginal solution.<br>
<br>
Please use old good tools for inter program communication.<br>
<br>
$ perl <a href=3D"http://test.pm" target=3D"_blank">test.pm</a> | python te=
st.py<br>
<br>
as example where output from <a href=3D"http://test.pm" target=3D"_blank">t=
est.pm</a> come to sys.stdin in python test.py<br>
<br>
use json, xml, text ... with easy.<br>
<br>
--<br>
DmitriKo<br>
<div><div></div><div class=3D"h5"><br>
On Wed, Mar 31, 2010 at 4:01 PM, Kenny &lt;<a href=3D"mailto:zhaowenliangpo=
[email protected]">[email protected]</a>&gt; wrote:<br>
&gt; Dear all,<br>
&gt;<br>
&gt; I have a question about pyperl.<br>
&gt;<br>
&gt; there is a perl module <a href=3D"http://test.pm" target=3D"_blank">te=
st.pm</a>:<br>
&gt; #! /usr/bin/perl<br>
&gt; package tset<br>
&gt; sub Cal {<br>
&gt; my ($v1,$v2)=3D@_;<br>
&gt; my $result=3D$v1+$v2;<br>
&gt; }<br>
&gt; print &quot;this is a test \n&quot;;<br>
&gt; 1;<br>
&gt;<br>
&gt; And there is a python file that calls the module above,<br>
&gt; import perl<br>
&gt; perl.require(&quot;test&quot;);<br>
&gt; #perl.call(&quot;Usage&quot;,&quot;<a href=3D"http://test1.pl" target=
=3D"_blank">test1.pl</a>&quot;)<br>
&gt; #perl.call(&quot;test::Usage&quot;, &quot;1&quot;)<br>
&gt; b=3Dperl.call(&quot;test::Cal&quot;, 1, 1)<br>
&gt; print b<br>
&gt;<br>
&gt; when run, I got a error message shown below: (can anyone tell me the r=
eason?<br>
&gt; many thanks)<br>
&gt; ##################################error message####################<br=
>
&gt; kenny@kenny-laptop:~/Desktop$ python test.py<br>
&gt; it is a test<br>
&gt; 2<br>
&gt; *** glibc detected *** python: free(): invalid pointer: 0xb7d7b1a0 ***=
<br>
&gt; =3D=3D=3D=3D=3D=3D=3D Backtrace: =3D=3D=3D=3D=3D=3D=3D=3D=3D<br>
&gt; /lib/tls/i686/cmov/libc.so.6[0xb7e02a85]<br>
&gt; /lib/tls/i686/cmov/libc.so.6(cfree+0x90)[0xb7e064f0]<br>
&gt; /usr/lib/python2.5/site-packages/perl2.so[0xb7cc772d]<br>
&gt; python[0x80855a9]<br>
&gt; python(PyDict_SetItem+0x6e)[0x8086f8e]<br>
&gt; python(_PyModule_Clear+0x158)[0x8088bf8]<br>
&gt; python(PyImport_Cleanup+0x152)[0x80de3d2]<br>
&gt; python(Py_Finalize+0xbf)[0x80ea41f]<br>
&gt; python(Py_Main+0x468)[0x8058d68]<br>
&gt; python(main+0x22)[0x80587f2]<br>
&gt; /lib/tls/i686/cmov/libc.so.6(__libc_start_main+0xe0)[0xb7dad450]<br>
&gt; python[0x8058761]<br>
&gt; =3D=3D=3D=3D=3D=3D=3D Memory map: =3D=3D=3D=3D=3D=3D=3D=3D<br>
&gt; 08048000-08140000 r-xp 00000000 08:05 2613978=A0=A0=A0 /usr/bin/python=
2.5<br>
&gt; 08140000-08165000 rw-p 000f7000 08:05 2613978=A0=A0=A0 /usr/bin/python=
2.5<br>
&gt; 08165000-08284000 rw-p 08165000 00:00 0=A0=A0=A0=A0=A0=A0=A0=A0=A0 [he=
ap]<br>
&gt; b7900000-b7921000 rw-p b7900000 00:00 0<br>
&gt; b7921000-b7a00000 ---p b7921000 00:00 0<br>
&gt; b7a44000-b7a4e000 r-xp 00000000 08:05 1409036=A0=A0=A0 /lib/libgcc_s.s=
o.1<br>
&gt; b7a4e000-b7a4f000 rw-p 0000a000 08:05 1409036=A0=A0=A0 /lib/libgcc_s.s=
o.1<br>
&gt; b7a5b000-b7a68000 r-xp 00000000 08:05 3008570<br>
&gt; /usr/local/lib/perl/5.8.8/auto/Python/Object/Object.so<br>
&gt; b7a68000-b7a69000 rw-p 0000c000 08:05 3008570<br>
&gt; /usr/local/lib/perl/5.8.8/auto/Python/Object/Object.so<br>
&gt; b7a69000-b7a8a000 rw-p b7a69000 00:00 0<br>
&gt; b7a8a000-b7b6b000 r--p 00000000 08:05 2638705<br>
&gt; /usr/lib/locale/en_US.utf8/LC_COLLATE<br>
&gt; b7b6b000-b7b74000 r-xp 00000000 08:05 1426495<br>
&gt; /lib/tls/i686/cmov/<a href=3D"http://libcrypt-2.7.so" target=3D"_blank=
">libcrypt-2.7.so</a><br>
&gt; b7b74000-b7b76000 rw-p 00008000 08:05 1426495<br>
&gt; /lib/tls/i686/cmov/<a href=3D"http://libcrypt-2.7.so" target=3D"_blank=
">libcrypt-2.7.so</a><br>
&gt; b7b76000-b7b9d000 rw-p b7b76000 00:00 0<br>
&gt; b7b9d000-b7cb8000 r-xp 00000000 08:05 2613267=A0=A0=A0 /usr/lib/libper=
l.so.5.8.8<br>
&gt; b7cb8000-b7cbd000 rw-p 0011a000 08:05 2613267=A0=A0=A0 /usr/lib/libper=
l.so.5.8.8<br>
&gt; b7cbd000-b7cbf000 rw-p b7cbd000 00:00 0<br>
&gt; b7cbf000-b7ccb000 r-xp 00000000 08:05 705539<br>
&gt; /usr/lib/python2.5/site-packages/perl2.so<br>
&gt; b7ccb000-b7ccc000 rw-p 0000b000 08:05 705539<br>
&gt; /usr/lib/python2.5/site-packages/perl2.so<br>
&gt; b7ccc000-b7ccd000 r-xp 00000000 08:05 705537<br>
&gt; /usr/lib/python2.5/site-packages/perl.so<br>
&gt; b7ccd000-b7cce000 rw-p 00000000 08:05 705537<br>
&gt; /usr/lib/python2.5/site-packages/perl.so<br>
&gt; b7cce000-b7cd5000 r--s 00000000 08:05 2622378<br>
&gt; /usr/lib/gconv/gconv-modules.cache<br>
&gt; b7cd5000-b7d14000 r--p 00000000 08:05 2638706<br>
&gt; /usr/lib/locale/en_US.utf8/LC_CTYPE<br>
&gt; b7d14000-b7d97000 rw-p b7d14000 00:00 0<br>
&gt; b7d97000-b7ee0000 r-xp 00000000 08:05 1426493<br>
&gt; /lib/tls/i686/cmov/<a href=3D"http://libc-2.7.so" target=3D"_blank">li=
bc-2.7.so</a><br>
&gt; b7ee0000-b7ee1000 r--p 00149000 08:05 1426493<br>
&gt; /lib/tls/i686/cmov/<a href=3D"http://libc-2.7.so" target=3D"_blank">li=
bc-2.7.so</a><br>
&gt; b7ee1000-b7ee3000 rw-p 0014a000 08:05 1426493<br>
&gt; /lib/tls/i686/cmov/<a href=3D"http://libc-2.7.so" target=3D"_blank">li=
bc-2.7.so</a><br>
&gt; b7ee3000-b7ee6000 rw-p b7ee3000 00:00 0<br>
&gt; b7ee6000-b7f09000 r-xp 00000000 08:05 1426497<br>
&gt; /lib/tls/i686/cmov/<a href=3D"http://libm-2.7.so" target=3D"_blank">li=
bm-2.7.so</a><br>
&gt; b7f09000-b7f0b000 rw-p 00023000 08:05 1426497<br>
&gt; /lib/tls/i686/cmov/<a href=3D"http://libm-2.7.so" target=3D"_blank">li=
bm-2.7.so</a><br>
&gt; b7f0b000-b7f0d000 r-xp 00000000 08:05 1426512<br>
&gt; /lib/tls/i686/cmov/<a href=3D"http://libutil-2.7.so" target=3D"_blank"=
>libutil-2.7.so</a><br>
&gt; b7f0d000-b7f0f000 rw-p 00001000 08:05 1426512<br>
&gt; /lib/tls/i686/cmov/<a href=3D"http://libutil-2.7.so" target=3D"_blank"=
>libutil-2.7.so</a><br>
&gt; b7f0f000-b7f10000 rw-p b7f0f000 00:00 0<br>
&gt; b7f10000-b7f12000 r-xp 00000000 08:05 1426496<br>
&gt; /lib/tls/i686/cmov/<a href=3D"http://libdl-2.7.so" target=3D"_blank">l=
ibdl-2.7.so</a><br>
&gt; b7f12000-b7f14000 rw-p 00001000 08:05 1426496<br>
&gt; /lib/tls/i686/cmov/<a href=3D"http://libdl-2.7.so" target=3D"_blank">l=
ibdl-2.7.so</a><br>
&gt; b7f14000-b7f28000 r-xp 00000000 08:05 1426507<br>
&gt; /lib/tls/i686/cmov/<a href=3D"http://libpthread-2.7.so" target=3D"_bla=
nk">libpthread-2.7.so</a><br>
&gt; b7f28000-b7f2a000 rw-p 00013000 08:05 1426507<br>
&gt; /lib/tls/i686/cmov/<a href=3D"http://libpthread-2.7.so" target=3D"_bla=
nk">libpthread-2.7.so</a><br>
&gt; b7f2a000-b7f2c000 rw-p b7f2a000 00:00 0<br>
&gt; b7f2d000-b7f2e000 rw-p b7f2d000 00:00 0<br>
&gt; b7f2e000-b7f2f000 r--p 00000000 08:05 2638723<br>
&gt; /usr/lib/locale/en_US.utf8/LC_NUMERIC<br>
&gt; b7f2f000-b7f30000 r--p 00000000 08:05 2637982<br>
&gt; /usr/lib/locale/en_US.utf8/LC_TIME<br>
&gt; b7f30000-b7f31000 r--p 00000000 08:05 2637983<br>
&gt; /usr/lib/locale/en_US.utf8/LC_MONETARY<br>
&gt; b7f31000-b7f32000 r--p 00000000 08:05 2646018<br>
&gt; /usr/lib/locale/en_US.utf8/LC_MESSAGES/SYS_LC_MESSAGES<br>
&gt; b7f32000-b7f33000 r--p 00000000 08:05 2638724<br>
&gt; /usr/lib/locale/en_US.utf8/LC_PAPER<br>
&gt; b7f33000-b7f34000 r--p 00000000 08:05 2638722<br>
&gt; /usr/lib/locale/en_US.utf8/LC_NAME<br>
&gt; b7f34000-b7f35000 r--p 00000000 08:05 2637984<br>
&gt; /usr/lib/locale/en_US.utf8/LC_ADDRESS<br>
&gt; b7f35000-b7f36000 r--p 00000000 08:05 2637985<br>
&gt; /usr/lib/locale/en_US.utf8/LC_TELEPHONE<br>
&gt; b7f36000-b7f37000 r--p 00000000 08:05 2637986<br>
&gt; /usr/lib/locale/en_US.utf8/LC_MEASUREMENT<br>
&gt; b7f37000-b7f38000 r--p 00000000 08:05 2637987<br>
&gt; /usr/lib/locale/en_US.utf8/LC_IDENTIFICATION<br>
&gt; b7f38000-b7f3a000 rw-p b7f38000 00:00 0<br>
&gt; b7f3a000-b7f3b000 r-xp b7f3a000 00:00 0=A0=A0=A0=A0=A0=A0=A0=A0=A0 [vd=
so]<br>
&gt; b7f3b000-b7f55000 r-xp 00000000 08:05 1409643=A0=A0=A0 /lib/<a href=3D=
"http://ld-2.7.so" target=3D"_blank">ld-2.7.so</a><br>
&gt; b7f55000-b7f57000 rw-p 00019000 08:05 1409643=A0=A0=A0 /lib/<a href=3D=
"http://ld-2.7.so" target=3D"_blank">ld-2.7.so</a><br>
&gt; bfb9e000-bfbb3000 rw-p bffeb000 00:00 0=A0=A0=A0=A0=A0=A0=A0=A0=A0 [st=
ack]<br>
&gt; Aborted<br>
&gt;<br>
&gt; --<br>
&gt; Best regards,<br>
&gt;<br>
&gt; Kenny<br>
&gt;<br>
</div></div>&gt; _______________________________________________<br>
&gt; Zope-perl maillist =A0- =A0<a href=3D"mailto:[email protected]">Zope-=
[email protected]</a><br>
&gt; <a href=3D"https://mail.zope.org/mailman/listinfo/zope-perl" target=3D=
"_blank">https://mail.zope.org/mailman/listinfo/zope-perl</a><br>
&gt;<br>
&gt;<br>
_______________________________________________<br>
Zope-perl maillist =A0- =A0<a href=3D"mailto:[email protected]">Zope-perl@=
zope.org</a><br>
<a href=3D"https://mail.zope.org/mailman/listinfo/zope-perl" target=3D"_bla=
nk">https://mail.zope.org/mailman/listinfo/zope-perl</a><br>
</blockquote></div><br><br clear=3D"all"><br>-- <br>Tommy Ditlev Henriksen<=
br>email: <a href=3D"mailto:[email protected]">[email protected]</a=
><br>

--000325554e4610d276048319bbbc--

--===============9004421515182002211==
Content-Type: text/plain; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Disposition: inline

_______________________________________________
Zope-perl maillist  -  [email protected]
https://mail.zope.org/mailman/listinfo/zope-perl

--===============9004421515182002211==--