Beefy Boxes and Bandwidth Generously Provided by pair Networks
There's more than one way to do things
 
PerlMonks  

Re: Not meaning to add values to a hash

by flexvault (Parson)
on Dec 22, 2012 at 14:18 UTC ( #1010016=note: print w/ replies, xml ) Need Help??


in reply to Not meaning to add values to a hash

stu96art,

Note: These are suggestions, or just some things to think about!

In your assignment code below (abbreviated), you need some testing for input accuracy.

$flag_assignments{$key}{"starrez"} = $info[0]; . . . $flag_assignments{$key}{"NR-Spring"} = $info[10];
  • How about a test for the exact number of commas? If the CSV record exists but only has 3 fields, the rest of your testing is going to be wrong.
  • What if one of the fields looks like:
    ,,"Jones, Mr.",,,
    How will that affect your hash?

Since the question about your script wouldn't be needed if the input data was 100%, try doing some reasonable verification before building the hash.

If you are building the input data, why not build it as a hash record, i.e.

my $record = qq|startez\t$info[0]$sep . . . |; ## $sep is a field +separator defined by you

You can 'split' on the separator("$sep") to get the record into fields, and a simple 'foreach' loop to build the hash by 'split'ing on tab("\t"). Then you know the hash is correct. You can write this record to a file or send it to a database. Perl doesn't care how big it is, and you won't either. If fields are added, your original data will still be correct.

If you don't have control over the input, then what will happen if one field is added in the middle of the record? Checking on the exact number of fields will at least let you know that something is wrong, and you can fix it.

Once you verify the input, your script will do what you want.

Good Luck...Ed

"Well done is better than well said." - Benjamin Franklin


Comment on Re: Not meaning to add values to a hash
Select or Download Code

Log In?
Username:
Password:

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

How do I use this? | Other CB clients
Other Users?
Others studying the Monastery: (7)
As of 2014-08-29 18:51 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    The best computer themed movie is:











    Results (286 votes), past polls