Bobby wrote:
I'm trying to write a simple do until loop to print out the value of
$strA0 through $striA3. What i'm doing is replacing the value of 0
through 3 in the $strA by joining two strings (my $strB = "strA" .
$count;). Right now my script is printing $strB as below. How do i
get perl to print the value of $strA0 through $strA3 inside of my do
until loop? i.e.:
Desired Outcome:
VarB: A0
VarB: A1,b,c
VarB: A 2
VarB: A3,d,e
Current Outcome:
VarB:strA0
VarB:strA1
VarB:strA2
VarB:strA3
#!/usr/bin/perl
use strict;
use warnings;
my $strA0="A0";
my $strA1="A1,b,c";
my $strA2="A2";
my $strA3="A3,d,e";
my $count = 0;
until ($count == 4){
my $strB = "strA" . $count;
print "VarB:$strB\n";
$count++;
}#end until loop
You are trying to use symbolic references. To make it work, you'd need to
- declare the $strAx variables with our() instead of my(),
- disable strictures ("no strict 'refs';"),
- dereference the strings: print "VarB:$$strB\n".
Please study the FAQ entry
perldoc -q "variable name"
to find out why that's not a recommended approach. You probably ought to
make use of a hash instead.
my %strA = (
0 => 'A0',
1 => 'A1,b,c',
2 => 'A2',
3 => 'A3,d,e',
);
print "VarB:$strA{$_}\n" foreach 0..3;
--
Gunnar Hjalmarsson
Email: http://www.gunnar.cc/cgi-bin/contact.pl
--
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
http://learn.perl.org/