graq has asked for the wisdom of the Perl Monks concerning the following question:
I have an object with a method that returns references to other methods on that object. I need to call those methods with parameters.
foo.plFoo.pm#!/usr/bin/perl use strict; use warnings; use Data::Dumper; use Foo; my $help = 'Please display this message'; my $foo = Foo->new; my $subref = $foo->subref; foreach my $pos (@{$subref->{order}}){ print "POS: $pos\n"; my $sub = $subref->{dispatch}->{$pos}; print Dumper($sub); &$sub($help); }
> perl foo.plpackage Foo; use strict; use warnings; sub new { bless {}, shift; } sub suba { my $self = shift; my $param = shift || ''; print "Message is: $param\n"; } sub subb { return; } sub subref { my $self = shift; return { order => ['A', 'B'], dispatch => { A => sub { $self->suba }, B => sub { $self->subb }, } }; } 1;
POS: A $VAR1 = sub { "DUMMY" }; Message is: POS: B $VAR1 = sub { "DUMMY" };
-=( Graq )=-
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re: Passing parameters to object method references
by borisz (Canon) on Jun 21, 2007 at 10:44 UTC | |
|
Re: Passing parameters to object method references
by rhesa (Vicar) on Jun 21, 2007 at 10:47 UTC | |
|
Re: Passing parameters to object method references
by citromatik (Curate) on Jun 21, 2007 at 11:27 UTC | |
by graq (Curate) on Jun 21, 2007 at 12:08 UTC |