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

Re: Removing certain lines from array

by VGavara (Novice)
on Jul 30, 2013 at 13:52 UTC ( #1047034=note: print w/replies, xml ) Need Help??

in reply to Removing certain lines from array

Anyway, I think your code doesn't work because of the initial value of $x in the second loop: Instead of $length-1 it might be $q-1.

That second loop has another bug: the exit condition ($x == 0) is wrong, it might be $x >= 0 in order to process all the lines starting from the previous being processed and ending when reaching the beginning of the file (array).

Finally the length of the array changes every time you delete an item, but your variable $length doesn't refresh its value.

The best way to do what you try to do in the way you try to do is processing the array backwards as the attached code shows. I've not tested it I think it reflects "the concept"

my $woord1; my $woord2; my $q = $@array-2; while ( $q >= 0 ) { if ($array[$q] =~ /^(\w+|\_)(\s)(\d{4})/) { $woord1 = $1; $x = $q+1; while ($x < $@array) { if ($array[$x] =~ /^(\w+|\_)(\s)(\d{4})/) { $woord2 = $1; if ($woord1 eq $woord2) { print "$woord1($q)\t$woord2($x)\n are the same"; delete $array[$x]; last; } } else { $x++; } } } $q--; }

Log In?

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

How do I use this? | Other CB clients
Other Users?
Others having an uproarious good time at the Monastery: (2)
As of 2021-09-24 02:28 GMT
Find Nodes?
    Voting Booth?

    No recent polls found