Hi,

it does not seem to be possible to use indirect method invocation with anything 
but a scalar. While this works:

my $mode = $parameters{mode};
$item->$mode();

I cannot seem to find a proper bracketing to make this work:

$item->$parameters{mode}();

Is my assumption correct?

My other problem is that the cookbook quotes (something like) the following 
code as an example for storing method names:

my %actions = (
display => $item->display(),
move_picture => $item->move_picture($item->{id}, 
$item->{parameters}->{position}),
commit => $item->commit()
);

Now I thought I could use

$actions{$parameter{mode}};

to invoke the proper method, but I get a "Useless use of hash element in a void 
context" error.

I can see why I get that error - but why would someone want to build a hash 
like %actions then, which just maps names to method invocations, without a way 
to actually get to those method invocations?

In other words, I would like to have something like the %actions hash to 
construct a more flexible version of the $item->$mode() construct, where I can 
pass different additional parameters to each method.

Thanks,

Jan

I have known more men destroyed by the desire to have wife  and child and to 
keep them in comfort than I have seen destroyed by drink and harlots. - W.B. 
Yates

--
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
<http://learn.perl.org/> <http://learn.perl.org/first-response>


Reply via email to