Beefy Boxes and Bandwidth Generously Provided by pair Networks
Clear questions and runnable code
get the best and fastest answer

Re: Not meaning to add values to a hash

by flexvault (Monsignor)
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


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

Log In?

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://1010016]
[Corion]: I feel a cold coming on - I guess I'll try to get through this day (visit to my godson this evening) and then a hot tub and tomorrow work from home, or not at all...

How do I use this? | Other CB clients
Other Users?
Others making s'mores by the fire in the courtyard of the Monastery: (8)
As of 2018-03-20 09:26 GMT
Find Nodes?
    Voting Booth?
    When I think of a mole I think of:

    Results (248 votes). Check out past polls.