How (or can) I use an interpolated scalar as an lvalue?

Example: I want to assign a value to a bunch of scalar variables $<prefix>_type:

my ($abc_type, $def_type, $xyz_type);
...
...
foreach (qw(abc def xyz))  #List of prefixes
{
        $varname= $_."_type"; #Actual scalar variable name is $prefix_type
        ${$varname}= <something>;  # <-- Problem
}

Perl complains about the second line in the foreach loop during run time:
Can't use string ("abc_type") as a SCALAR ref while "strict refs" in use at 
test1.pl line 19.


I wanted to understand whether this is possible somehow, i.e., can we use a 
generated string to point to a scalar variable?

(I know I can use a hash instead with the prefixes as keys, but I'm modifying 
some hand-me down code for a small change & would like to avoid invasive 
changes.)

Thanks,

-Nilanjan


_______________________________________________
Boston-pm mailing list
[email protected]
http://mail.pm.org/mailman/listinfo/boston-pm

Reply via email to