[Zope-Perl] Script (Perl) question
Gisle Aas
gisle@ActiveState.com
25 Jan 2001 11:24:34 -0800
"Chris McDonough" <chrism@digicool.com> writes:
> I think you need to reference self.Control_Panel.objectIds in perl through
> the following:
>
> foreach $name ($self->{Control_Panel}->objectIds()) {
> ...
> }
Assuming $o is some python object:
Perl | Python
-----------+------------------------------------
$o->{Foo} | should be the same as o["Foo"]
$o->Foo | should be the same as o.Foo
| or o.Foo() (if o.Foo happens to be callable)
If you want to avoid the auto-call feature of $o->Foo you need to
write it as Python::getattr($o, "Foo").
--Gisle
> Gad, I found that I've forgotten everything I ever knew about Perl, which
> wasn't much to start with. :-)
>
> ----- Original Message -----
> From: "Chris McDonough" <chrism@digicool.com>
> To: "Andy McKay" <andym@activestate.com>; <zope-perl@zope.org>
> Sent: Wednesday, January 24, 2001 7:12 PM
> Subject: Re: [Zope-Perl] Script (Perl) question
>
>
> > Are you passing in "self" as an argument on the PerlM arguments line?
> >
> > ----- Original Message -----
> > From: "Andy McKay" <andym@activestate.com>
> > To: <zope-perl@zope.org>
> > Sent: Wednesday, January 24, 2001 6:48 PM
> > Subject: [Zope-Perl] Script (Perl) question
> >
> >
> > > Whats $self in Zope Perl, AFAIK it is a binding to the scripts
> container,
> > > similar to context to Script (Python). Anyway the following works fine
> in
> > > python:
> > >
> > > return context.Control_Panel.objectIds()
> > >
> > > The same in Perl would be:
> > >
> > > return $self->Control_Panel->objectIds();
> > >
> > > but I get a __call__ error. The Zope Book suggests that I have the right
> > > syntax. The problem seems to occur when moving into a sub-object, for
> > > example $self->objectIds(); works just fine. Any ideas anyone?
> > >
> > > Using: Zope 2.3b2, Win2k, Python 1.5.2, Perl 620, pyperl &
> > zoperl-1.0-beta3
> > >
> > > Cheers.
> > >
> > > --
> > > Andy McKay.