On Fri, Feb 20, 2009 at 22:56, itshardtogetone
<[email protected]> wrote:
> Hi,
> Looking at the script below, why does the while function loop 6 times instead
> of 3 times when @data have only 3 elements and
> I thought the output should be:-
> 1 $_ = aaa 1
> 2 $_ = bbb 2
> 3 $_ = ccc 3
>
> Thanks
>
> #############################
>
> #!/usr/bin/perl
> use strict;
> use warnings;
>
> my @data = ('aaa 1','bbb 2','ccc 3');
> my $ctr = 0;
>
> print "There are ",scalar @data," elements in \...@data\n";
>
> while (<@data>){
> $ctr ++;
> print "$ctr \$_ = $_\n";
> }
Wow, that is really odd. I read that as the same as
while (glob(@data)) {
but that is obviously not what it is doing. The construct you are
looking for is the for loop:
for my $element (@data) {
$ctr++;
print "$ctr \$element is $element\n";
}
I will try to figure out what is going on in your code,
--
Chas. Owens
wonkden.net
The most important skill a programmer can have is the ability to read.
--
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]
http://learn.perl.org/