Beefy Boxes and Bandwidth Generously Provided by pair Networks
"be consistent"

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

by trammell (Priest)
on Jul 06, 2006 at 22:07 UTC ( #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 (Sage) 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?

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://559684]
[shmem]: LanX: doesn't reference table formatting. Thx anyways. -.-
[LanX]: ->  Perl Monks Approved HTML tags
[LanX]: -> <table border=1>
[shmem]: Lanx: that just enables the border. Looking up style attributes...
[LanX]: ?
[karlgoethebier]: code><table style="border: 1px solid black;}"></code> same for th and td ?
[shmem]: my scratchpad

How do I use this? | Other CB clients
Other Users?
Others meditating upon the Monastery: (12)
As of 2017-07-24 16:39 GMT
Find Nodes?
    Voting Booth?
    I came, I saw, I ...

    Results (356 votes). Check out past polls.