If you want to use soft references, the you'll need to be a
little more careful. First, you need say
no strict 'refs';
if you didn't say
use strict;
beforehand. To do what you'd like to do, you need to use
quotes like so:
print "1st member of $type = ", ${"arr_$type"}[0];
However, REAL references are the way to go. Make a hash,
whose keys are the possible return values of get_type().
Each value in this hash will be an array reference.
my %arrays = (
type1 => [ "look", "at", "me", "go", ],
type2 => [ "watch", "me", "exeunt", ],
type3 => [ "see", "me", "disappear", ],
);
$type = get_type();
print "element 1 if $type is $arrays{$type}[0]\n";
To learn how to use references, look at the perlref
documentation. | [reply] [d/l] [select] |
As far as I know, there isn't a way to use soft references without "no strict 'refs';". | [reply] [d/l] |