On 1 Sep 2004, at 11:11 AM, Palit, Nilanjan wrote:
I thought this is possible, but maybe I'm wrong. Ok, here's the issue:
I want to print the values of a bunch of variables so I thought I'll take a shortcut and do this:
foreach (qw(var1 var2 var3 var4)) { print "$_ -> ${$_}\n"; }
I had thought that interpolating the variable name ("${$_}") would cause
Perl to interpret the correct variable name & print its value, but it
printed nothing.
Is my syntax wrong or is this not possible at all? I checked Mr. Camel, but did not find anything there on this specifically.
This works fine:
#!/usr/bin/perl
$var1 = 'a'; $var2 = 'b'; $var3 = 'c';
foreach (qw(var1 var2 var3)) { print $_ . ' => ' . ${$_} . "\n"; }
Note, however, that you need to make sure the variables are _not_ lexical variables, but rather package variables. Ie, you can't use 'my' to define the variable. Also, 'use strict' will prevent this.
HTH, Ricky
_______________________________________________ Boston-pm mailing list [EMAIL PROTECTED] http://mail.pm.org/mailman/listinfo/boston-pm