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

Reply via email to