in reply to Re: finding unique items in an array, from a text file
in thread finding unique items in an array, from a text file

This is good but I think it may be overload overwhelming. I think what he needs is to see what's wrong with his script before we show any tricks ( i know, standard perl ).

For example, show how his script can be made to work as close to what it is right now.

What is probably happening is that you're getting errors about undeclared symbols, like %seen, for example.

Also what you need to do is separate the stage where you read in the lines, and the place where you do something with them, like identify the unique ones.

The following example may get closer to what you want, it still will have errors..

#! C:\Perl\bin\perl.exe use strict; my $file = "controls.txt"; open (FH, "< $file") or die "Can't open $file for read: $!"; my @lines; while (<FH>) { push (@lines, $_); } my %seen = (); my @uniq = (); foreach @lines { unless ($seen{$item}) { #if we get here, we have not seen it before $seen{$item} = 1; push(@uniq, $item); } } close FH or die "Cannot close $file: $!"; print @lines; # see if it worked

Remember, every symbol ($variable_name) must be given a scope(range of where in the code it is valid), with my. You can't just introduce a $item variable if it has not been declared and scoped. Which is what you are correctly doing with my @lines, and my $file, etc..