Depending on what you're doing you may want to use a hash instead. If the main thing you're concerned with is whether your collection already contains something you should use a hash instead. Instead of searching the entire array for each an item which takes O(n) time a lookup in a hash takes O(1). This means that if your array size doubles your search time on average will double as well. A hash has a constant lookup time will remain the same whether the hash contains 1 or a million items.
For an example we'll read a line from the keyboard and if we've seen it already we'll add it to our "collection".
my %set #how you initialize an array
while($line=<>) #while text is coming in from the keyboard
#set $line=line of keyboard input
{
unless($set{$line}){
$set{$line}=1; # basically means we've seen this line
}
}
#now lets see each $line we've encountered
foreach my $line(keys %set){
print $line;
}
Hope this helps you might also want to look at The Basic Datatypes, three for more info on hashes. There is also a similar question in the faq about How can I tell whether a list or array contains a certain element?
|