Beefy Boxes and Bandwidth Generously Provided by pair Networks
XP is just a number
 
PerlMonks  

Re: printing hash values, (don't need the keys)

by trammell (Priest)
on Jul 06, 2006 at 22:07 UTC ( [id://559684]=note: print w/replies, xml ) Need Help??


in reply to printing hash values, (don't need the keys)

One problem with your code is that you're reading the entire file into memory when you don't need to. Here's an alternative that doesn't (untested):
my $data_file = "ActiveItems2.txt"; open(DAT, $data_file) || die("Could not open file: $!"); my %seen; while (<DAT>) { chomp; $seen{$_}++; } close(DAT); for (sort keys %seen){ print "$_\n"; }

Replies are listed 'Best First'.
Re^2: printing hash values, (don't need the keys)
by GrandFather (Saint) on Jul 06, 2006 at 22:32 UTC

    If you omit the chomp then you can:

    my $data_file = "ActiveItems2.txt"; open(DAT, $data_file) || die("Could not open file: $!"); my %seen; $seen{$_}++ while <DAT>; print for sort keys %seen; close(DAT);

    Another interesting variant (although it may suffer the slurp problem) is to use a hash slice:

    @seen{<DAT>} = (); # Hash slice assignement print for sort keys %seen;

    It's worth seeing the hash slice a few times to remember that it is there and what the syntax is. Like many things in Perl, occasionally it is exactly what you need to achieve a clean solution to a problem. Perhaps not in this case though. :)


    DWIM is Perl's answer to Gödel

Log In?
Username:
Password:

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

How do I use this?Last hourOther CB clients
Other Users?
Others wandering the Monastery: (4)
As of 2024-03-19 09:39 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found