in reply to Why do i get an extra (duplicate) array element?-

We need to see runnable code that is equivalent to the code you're running. The code you've posted cannot ever yield an array with more than a single element:

c:\@Work\Perl\monks>perl -wMstrict -le "my @list = qw(one two three four); ;; my @ra; for my $item (@list) { @ra = $item; printf 'print all in @ra: '; printf qq{$_ } for @ra; print 'done'; } " print all in @ra: one done print all in @ra: two done print all in @ra: three done print all in @ra: four done

Update: E.g., something using push would do the trick:

c:\@Work\Perl\monks>perl -wMstrict -le "my @list = qw(one two three four); ;; my @ra; for my $item (@list) { push @ra, $item; printf 'print all in @ra: '; printf qq{$_ } for @ra; print 'done'; } " print all in @ra: one done print all in @ra: one two done print all in @ra: one two three done print all in @ra: one two three four done


Give a man a fish:  <%-{-{-{-<

Replies are listed 'Best First'.
Re^2: Why do i get an extra (duplicate) array element?-
by rickman1 (Novice) on Jun 23, 2016 at 19:44 UTC

    Thanks for your reply. Actually that is actual code and output. The only thing missing is where i snatch the file name from command line.

    open IN, "<$ARGV[0]" or die "Could not open input file '$ARGV[0]' $!";

    So i was reading into the push function but cannot seem to get it right. Not sure just where to place it. When i am loading the array via the substr function or printing it out?