in reply to loop to allocate values to variables

That seems a bit odd to me. You already have a hash, so why not work with that directly instead of putting its contents into independent variables.

However, this code:
foreach my ($blastresult, $value) {$_ = $$self{_$_};}
is not doing what you think it does. It is just looping over the two values.
my $blastresult = "foo"; my $value = "bar"; foreach my ($blastresult, $value) {print;}
prints "foobar". What you want would be more along the lines of
use strict; use warnings; my $foo; my $bar; my %hash = ("_foo" => "FOO", "_bar" => "BAR"); foreach my $varname (keys %hash) { eval "\$" . substr($varname,1) . " = '" . $hash{$varname} . "';"; } print "$foo\n$bar";


holli, /regexed monk/