Anonymous Monk has asked for the wisdom of the Perl Monks concerning the following question:
Dear Monks, Hoping you can help. I can call the subroutine first_name() like this:
$self->xml()->first_name();
However I want to call it when 'first_name' is a constant. The following code doesn't work
use constant { STUFF => { 'name1' => 'first_name', 'name2' => 'last_name', }, }; foreach my $val (keys ${\( STUFF() ) } ){ my $value = eval("$self->xml()->${\( STUFF() ) }->{ $val }()"); }
I can't use a code ref like below because of how it needs to be called ( perhaps there is a way? ) Note: I cannot use Readyonly either. I've also tried various combinations of \&{$variable} but can't seem to get it to work.
use constant { STUFF => { 'name1' => $self->xml()->first_name(), 'name2' => $self->xml()->last_name(), }, };
Please help if you can. Thanks
|
|---|