in reply to Re: Re: Re: Array elements in a hash
in thread Array elements in a hash

ok, that makes sense,
now if I'm using my data example above, and I have in fact determined that a duplicate entry is seen, what does the snippet of code look like to increase the counter in my array?
$VAR1 = { 'response_1.3.6.1.2.1.2.2.1.12.27' => { 'Time_Arrived' => '16:14:13.8', 'Error_Status' => 'No error', 'OID_NAME' => [ [], [ '1.3.6.1.2.1.2.2.1.11.27', 'ifInUcastPkts.27', 1 ], [ '1.3.6.1.2.1.2.2.1.15.27', #seen again 'ifInUnknownProtos.27', 1 # I need to increment this to 2 ],
Thanks for all your help!

Replies are listed 'Best First'.
Re5: Array elements in a hash
by dragonchild (Archbishop) on Mar 24, 2003 at 22:10 UTC
    Ok. Now, we're getting into the issue of "What questions do I need to be able to ask my data?". That, in many ways, is the fundamental issue of all programming theory. How you structure your data determines algorithms, efficiency, programming style, programming language, etc.

    The data structure you have looks like something that would be created by reading in part of a log-file, presumably something to do with network traffic of some sort. What you did was read in the file, and, when you hit this section of similar stuff, you made an array.

    To answer the question you want to ask, I would create a hash instead of an array. It might look something like:

    ... 'OID_NAME' => { '1.3.6.1.2.1.2.2.1.11.27' => { stuff => 'ifInUcastPkts.27', NumTimesSeen => 1, }, '1.3.6.1.2.1.2.2.1.15.27' => { stuff => 'ifInUcastPkts.27', NumTimesSeen => 2, }, }, ...
    Now, if the address-looking thingy isn't the important stuff, pick your key accordingly.

    Now, if you need to preserve the original ordering and the fact that duplicates occurred at positions 2 and 5, you'll need an array. Personally, I tend to work with hashes more than arrays, because the questions I tend to ask don't involve preserving this kind of information. Your needs might be different.

    ------
    We are the carpenters and bricklayers of the Information Age.

    Don't go borrowing trouble. For programmers, this means Worry only about what you need to implement.

    Please remember that I'm crufty and crochety. All opinions are purely mine and all code is untested, unless otherwise specified.