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

Re: hash_reference from file

by choroba (Canon)
on Sep 29, 2011 at 09:11 UTC ( #928497=note: print w/ replies, xml ) Need Help??


in reply to hash_reference from file

#!/usr/bin/perl use Data::Dumper; use constant KEYS => qw/APP REG KPI INTERFACE DATE TIME NODE RAN SUCC_RATE/; use warnings; use strict; my @array; while (<DATA>) { my @line = split; my %hash; @hash{+KEYS} = @line; push @array, {%hash}; } print Dumper \@array; __DATA__ CORDR KZN MTC-N AINT 2011-09-29 09:00 DTL PM05 83.79 4 - - CORDR SGC MTC-N AINT 2011-09-29 09:00 JSA BR20 85.39 3 - - CORDR SGC MTC-N AINT 2011-09-29 09:00 JSA BR21 86.06 1 - - CORDR Unk MTC-N AINT 2011-09-29 09:00 JSA BR22 84.55 2 - - CORDR SGC MTC-N AINT 2011-09-29 09:00 JSA RN10 86.97 1 - - CORDR SGC MTC-N AINT 2011-09-29 09:00 JSA RS11 84.57 2 - - CORDR SGC MTC-N AINT 2011-09-29 09:00 JSA RS12 86.31 2 - - CORDR SGC MTC-N AINT 2011-09-29 09:00 JSA SD10 86.79 1 - - CORDR SGC MTC-N AINT 2011-09-29 09:00 JSA SN10 85.54 1 - -
To understand, read the following:
The strictures, according to Seuss
Data::Dumper
constant
perldata


Comment on Re: hash_reference from file
Download Code
Re^2: hash_reference from file
by hmadhi (Acolyte) on Sep 29, 2011 at 09:32 UTC

    Cool. Just what the Doctor Ordered.

Re^2: hash_reference from file
by hmadhi (Acolyte) on Sep 29, 2011 at 10:54 UTC

    Next Question: How do I exclude certain lines. eg exclude lines that have 'Unk'

      Just don't push if $hash{REG} eq 'Unk'...

        Thanks

Re^2: hash_reference from file
by jwkrahn (Monsignor) on Sep 29, 2011 at 11:33 UTC
    while (<DATA>) { my @line = split; my %hash; @hash{+KEYS} = @line; push @array, {%hash}; }

    Why create a hash in the lexical scope of the while loop and then make a copy of that hash instead of just using a reference to that lexically scoped hash?

    while (<DATA>) { my %hash; @hash{ +KEYS } = split; push @array, \%hash; }
      You are absolutely right. I was typing too fast :)

Log In?
Username:
Password:

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

How do I use this? | Other CB clients
Other Users?
Others having an uproarious good time at the Monastery: (5)
As of 2015-07-04 13:42 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    The top three priorities of my open tasks are (in descending order of likelihood to be worked on) ...









    Results (60 votes), past polls