[Date Prev][Date Next][Thread Prev][Thread Next] [Search] [Date Index] [Thread Index]

Re: [MacPerl-Modules] can't locate object method "prop"



At 14.38 -0500 1999.07.30, Jefferson R. Lowrey wrote:
>my $currentDisc = $toaster->get($toaster->obj(property => 'current_disc'));
>#my $bootable = $toaster->prop('bootable', of => $currentDisc) or warn;
>eval { $toaster->set($currentDisc->prop('bootable') , gTrue); } or warn;
>eval { $toaster->set($currentDisc->prop('dont_copy_free_space'), gTrue); }
>or warn;

You Can't Do That.  Currently, you cannot call methods on AEObjs.  At some
point you will be able to (probably), but at that point you still probably
won't be able to call prop() and obj() on AEObjs, because there really
isn't any need to.  You want:

  $toaster->set( $toaster->prop(bootable => $currentDisc), to => gTrue) );
  warn $^E if $^E;

=> is kinda like saying "of".  Sometimes you need to add an "of" when you
have two properties next to each other, like (name => of => class => window
=> 1), where name and class are properties, and you need to stick something
in between them.  This isn't perfect, but I thought this was preferable to
putting "of" between every pair, like (name => of => class => of => window
=> 1).  So the basic rule is that is a "thing" like name or class or
somesuch doesn't have a value, if it is the first one then use the prop()
method, and after that use "of" or "in" or "property" in front of it (such
as with "of => class" above).

Also, in the _all_ methods, every parameter passed (except for the first
one) must have a keyword attached to it.  So you cannot do:

  $foo->set($bar, $baz);

You need to do:

  $foo->set($bar, to => $baz);

-- 
Chris Nandor          mailto:pudge@pobox.com         http://pudge.net/
%PGPKey = ('B76E72AD', [1024, '0824090B CE73CA10  1FF77F13 8180B6B6'])

==== Want to unsubscribe from this list?
==== Send mail with body "unsubscribe" to macperl-modules-request@macperl.org