in reply to H of A optimization

Putting everything together, I have:
my %edgeHash; my @alreadySeen; my %countHash; while(<stdin>){ # Reading data from the inet generator, # making sure the format is correct. if(/^\s*([0-9]+)\s+([0-9]+)\S*$/){ my $a = "$1"; my $b = "$2"; push @{$edgeHash{$a}}, $b if not $alreadySeen[int($b)]++; } }
Thanks to all those who helped. ++ tomorrow, when I get the votes.

Replies are listed 'Best First'.
Re: Re(ALL): Putting it together
by fruiture (Curate) on Aug 30, 2002 at 21:18 UTC

    I'd rather say:

    my (%edgeHash,@alreadySeen); while(<STDIN>){ # simpler regexp if(/(\d+)\D+(\d+)/){ # don't use '$a' and '$b'! # and don't quote "$vars" # in fact you can keep $1 and $2 push @{$edgeHash{$1}}, $2 unless $alreadySeen[int($2)]++; } }
    --
    http://fruiture.de

      Well, in that case...

      my (%edge, @seen); while (<STDIN>) { $seen[$2]++ or push @{$edge{$1}}, $2 if /(\d+)\D+(\d+)/; # push @{$edge{$1}}, $2 if /(\d+)\D+(\d+)/ and not $seen[$2]++; }

      — Arien

      Edit: added the commented alternative.