sub get_regexes_prepare { # replaces all ${$hashname}{'abc'} no strict 'refs'; my ($pckg,$rregexes) = @_; # packagename and hashref are passed my @regexes = @{$rregexes}; my @hashnames = (); $#hashnames = $#regexes; # same size for (my $i=0; $i < $#regexes+1; $i++) { my $hashname = "${pckg}::hashname".$i; # construct hashname $hashnames[$i] = $hashname; $regexes[$i] =~ s/\$hashname/\$$hashname/g; tie %${$hashname}, "Tie::IxHash"; # keep order } return (\@regexes,\@hashnames); }