Beefy Boxes and Bandwidth Generously Provided by pair Networks
No such thing as a small change
 
PerlMonks  

Re: Is it possible to get the array with all the elements at the end of a loop?

by marquezc329 (Scribe)
on Oct 30, 2012 at 01:06 UTC ( [id://1001437]=note: print w/replies, xml ) Need Help??


in reply to Is it possible to get the array with all the elements at the end of a loop?

Hello supriyoch_2008.

As toolic has already informed you, push will allow you to insert the value of $newlist into @newarray on each pass through your loop.

On each iteration, $newlist changes, so because @newarray = "$newlist" is declared outside the scope of this loop, you are essentially creating a single element list and populating it with the last value of $newlist.

I would recommend that you take a look at Perlintro (safety net) and begin incorporating the use strict pragma into your code. This will help you keep cleaner and more maintainable code as well as help to keep you more aware of variable scope.

Perlstyle talks more about that white space that toolic recommended, along with other suggestions that will help you to make your code more readable. Lastly, you might consider having a read through perldebtut, and begin getting comfortable with debugging. As a rookie myself, I can say that using the debugger to walk through your code a step at a time can have a strong impact on your understanding of what is really happening inside your code.

Here's an example implementing use strict;, incorporating push, and eliminating some single use variables that were in the original.

#!/usr/bin/perl use warnings; use strict; use 5.12.4; my $word="ABCDEFGHIJKLMNO"; ## Determining the number of 4-letter Fragments: my $frag_Num = int (length($word)/4); say "Total Fragments= $frag_Num\n"; say "The 4-Letter Fragments are:\n"; my @newarray; my $frag = 0; while ($word =~ /(.{4}?)/igs) { $frag++; my $pos=$-[0]+1; my $leng=length($&); print "Fragment Number: $frag; Fragment: $&\n"; print "Length: $leng; Starting Position: $pos\n\n"; my $newlist=$leng; push @newarray, $newlist; } print"\n Newarray (should be 4 4 4): @newarray\n\n"; exit;

Log In?
Username:
Password:

What's my password?
Create A New User
Domain Nodelet?
Node Status?
node history
Node Type: note [id://1001437]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this?Last hourOther CB clients
Other Users?
Others musing on the Monastery: (7)
As of 2024-03-19 11:48 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found