Best practices are relative and subjective, but it's generally considered a good idea to avoid using Symbolic references without good reason. Why are you using references in place of a hash, i.e.:
use strict;
use warnings;
my @names = ('peter','jonah','larry');
my %name_hash = ();
foreach (@names) {
$name_hash{$_} = "i like $_";
}
print "$name_hash{$_}\n" foreach @names;
In a side note, while you cannot use my on globals, you can localize their values with local. <-- not really relevant.
Update: A useful link, as pointed out by bart in CB: http://www.google.com/search?q=varvarname&btnI=I;
If you are tied to the idea of symbolic refs, you can use them with some degree of stricture with
use strict;
use warnings;
my @names = ('peter','jonah','larry');
our ($peter,$jonah,$larry);
foreach (@names) {
no strict 'refs';
$$_ = "i like $_";
}
print "$peter\n$jonah\n$larry\n";
But read the link first. |