Hi Perl Monks,
It might be a silly question but I am at my wit's end to get the desired result in the last array (line 19). I have written a perl script (given below) to count the number of 4-letter fragments in a 15-letter word. My interest is to assign the length of each fragment as an element in the final array i.e. @newarray. The new array at line 19 should show the elements (4 4 4) but I am getting only one 4. Is it possible to get the correct result from the newarray as (4, 4, 4)?
Here goes the perl script:
#!/usr/bin/perl use warnings; $word="ABCDEFGHIJKLMNO"; ## Determining the number of 4-letter Fragments: $a=length($word);$four=4; # Line 5 $frag_Num1=$a/$four;$frag_Num=int$frag_Num1; print"\n Total Fragments= $frag_Num\n\n"; print"\n\n The 4-Letter Fragments are:\n\n"; $frag=0; while ($word=~ /(.{4}?)/igs) # Line 10 {$frag++; $b=$&;$pos=$-[0]+1; $leng=length($b); print"\n Fragment: $&; Fragment Number: $frag of length $leng letters + Starting at position: $pos\n"; print"\n Its length= $leng Letters;\n\n"; # Line 15 $newlist=$leng; } @newarray="$newlist"; print"\n Newarray (should be 4 4 4): @newarray\n\n"; # Line 19 exit;
The cmd has shown the correct results except for the last line:
Total Fragments= 3 The 4-Letter Fragments are: Fragment: ABCD; Fragment Number: 1 of length 4 letters Starting at po +sition: 1 Its length= 4 Letters; Fragment: EFGH; Fragment Number: 2 of length 4 letters Starting at po +sition: 5 Its length= 4 Letters; Fragment: IJKL; Fragment Number: 3 of length 4 letters Starting at po +sition: 9 Its length= 4 Letters; Newarray (should be 4 4 4): 4
The last line should look like:
Newarray (should be 4 4 4): (4,4,4)In reply to Is it possible to get the array with all the elements at the end of a loop? by supriyoch_2008
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |