I don't know how converting the anonymous subroutines to named subroutines will improve the situation as you haven't told us why you need names. Iterating over unnamed things is usually easier than generating names. Still, it's fairly easy to give names to the subroutines:
for my $primary (sort keys %CODEREFS) { for my $secondary (sort keys %{ $CODEREFS{$primary}}) { my $code = $CODEREFS{$primary}->{$secondary}->{cref}; no strict 'refs'; *{"mymodule_${primary}_${secondary}"} = $code; }; };
If you plan on calling the subroutines via the -> method syntax, be aware that the parameters might change, because $foo->mymodule_1_1() is equivalent to mymodule_1_1($foo);.
In reply to Re: Refactoring a module with many anonymous subrefs as an OO module
by Corion
in thread Refactoring a module with many anonymous subrefs as an OO module
by telcontar
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |