Given a perl module Foo.pm with methods aSub() and bSub()
my $obj = Foo->new();
my $x = $obj->aSub($argA);
my $y = $obj->bSub($argB);
I have a TAP program where I build an array of hashes:
my $test_case = [
'aSub' => "foobar",
'bSub' => "whobar"
];
I would like to be able to parse the array and use the key/value elements to call methods on the Foo object $obj;
Like a static method:
if ($key eq 'aSub') {
$obj->aSub($value)
} elsif ($key eq 'bSub') {
$obj->bSub($value);
}
...
I would prefer to do this polymorphically so I don't have to hard code the methods:
$obj->{$key}($value) #or something of the sort
I have tried several methods using references and/or glob, but I keep on getting an error:
Error: Threw an exception: aSub is not defined
Test::Harness capturing the error and printing less useful message?
$test_caseas you defined it is not an array of hashes, it's just an array of strings (it's the same as$test_case = [qw(aSub foobar bSub whobar)]).