in reply to Re^2: Data Structures design help to represent function args for testing
in thread Data Structures design help to represent function args for testing

You're taking it up one level, so extrapolate the argument solution up one level - use a hash of arrays or an array of arrays:

my %functions = ( function1 => {arglist1 => ["arg1", { arg2 => val2 }], arglist2 => [...], ... }, function2 => {...}, ..., ); while (my ($func, $argsList) = each %functions) { for my $key (keys %$argsList) { print "Test $func against args $key\n" &{"harcommon::$func"}(@{$argsList->{$key}}); } }

or:

my %functions = ( function1 => [["arg1", { arg2 => val2 }], [...], ... ], function2 => [...], ..., ); while (my ($func, $argsList) = each %functions) { for my $args (@$argsList) { print "Test $func against args $key\n" &{"harcommon::$func"}(@$args); } }

Perl is environmentally friendly - it saves trees