Stuart White wrote:
>
> I'm reading in lines of text, and extracting the
> relevant parts of it. These relevant parts are then
> being pushed onto an array. My trouble is that these
> parts are a maximum of 24 unique names. However, when
> pushed onto the array, there is no mechanism for
> comparison where the repeated names are skipped. I'm
> not sure how to do it. Here's the code I have:
>
> while (<STATS>)
> {
> if ($_ =~ /\[($team)\] ($player)/)
> {
> if ($1 eq "SAN")
> {
> push (@SAN, $2);
> #unless ($2 eq $SAN[i]) #I need a foreach loop here
> #that will give the unless a $SAN[i] to compare
> #against the $2, I'm just not sure how to write it.
> }
>
> elsif ($1 eq "PHX")
> {
> push (@PHX, $2);
> }
>
> print "$1\t";
> print "$2\n";
> }
> }
> foreach (@SAN)
> {
> print "Spur roster: $_\n";
> }
>
> In the end, I want @SAN to have all the unique names
> within the file. Any ideas?
If you want the teams and players to be unique you should probably use a
hash of hashes (HoH):
my %stats;
while ( <STATS> ) {
my ( $t, $p ) = /\[($team)\] ($player)/ or next;
$stats{ $t }{ $p } = ();
print "$t\t$p\n";
}
for my $t ( keys %stats ) {
print "$t roster: @{[ keys %{ $stats{ $t } } ]}\n";
}
John
--
use Perl;
program
fulfillment
--
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
<http://learn.perl.org/> <http://learn.perl.org/first-response>