Beefy Boxes and Bandwidth Generously Provided by pair Networks
Pathologically Eclectic Rubbish Lister
 
PerlMonks  

Re: Algorithm needed

by elusion (Curate)
on Dec 05, 2002 at 23:14 UTC ( [id://217932]=note: print w/replies, xml ) Need Help??


in reply to Algorithm needed

How's this do ya?
#!/usr/bin/perl -w use strict; my %hash = (); while (<DATA>) { # split based on spaces my ($hex, $foo, $int) = split /\s+/; # use hash value as an array ref push @{$hash{$hex}}, $int; }
You can then access the ints by using the hash values as array refs. For instance, to print the output:
for (keys %hash) { print "$_ = ", join(", ", sort @{$hash{$_}}), "\n"; }

elusion : http://matt.diephouse.com

Update: D'oh! Missed the part about ints being unique. merlyn saw it though.

Replies are listed 'Best First'.
•Re: Re: Algorithm needed
by merlyn (Sage) on Dec 05, 2002 at 23:26 UTC
    Or, just do it all at once:
    my %hash = (); while (<DATA>) { # split based on spaces my ($hex, $foo, $int) = split /\s+/; $hash{$hex}{$int}++; } for (keys %hash) { print "$_ = ", join(", ", sort keys %{$hash{$_}}), "\n"; }

    -- Randal L. Schwartz, Perl hacker
    Be sure to read my standard disclaimer if this is a reply.

      split /\s+/;

      Do you recommend this as normal practice? I think the special case, split ' ', is usually what people really want. (Yes, this is a very minor point but I'm curious.)

      -sauoq
      "My two cents aren't worth a dime.";
      
Re: Re: Algorithm needed
by The_Rev (Acolyte) on Dec 05, 2002 at 23:26 UTC
    It works fine, except I only need the unique ints, because my real data file is quite large.

    I.E.

    0x130005d = 10, 11, 14 0x130009c = 12, 14
    This is the same problem I was having earlier.

Log In?
Username:
Password:

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

How do I use this?Last hourOther CB clients
Other Users?
Others sharing their wisdom with the Monastery: (6)
As of 2024-03-28 11:02 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found