in reply to compare previous and present hash key values

Are you trying to compare a list of ITEMS associated with each ID ?

How complex is the "compare" ? Is it just checking if the item exists in the values for the other ID ?

These types of queries are usually much more efficient and readable when done in SQL. using something like :

SELECT item from mytable WHERE ID = '555549' AND item NOT IN (SELECT item from mytable where ID='560834');
Of course, you can use perl to build the query and subquery.

Update:

If you really want to examine CURRENT, PREVIOUS and NEXT items in an array, consider using Array::Iterator::BiDirectional.

        If your eyes hurt after you drink coffee, you have to take the spoon out of the cup.
              -Norm Crosby

Replies are listed 'Best First'.
Re^2: compare previous and present hash key values
by undisputed (Initiate) on Jan 11, 2014 at 15:15 UTC

    Thanks for your reply. The compare will be something like :

    my @a = ( 100, 112,123, 333, 500 ); my @b = ( 100, 333, 500 ); my %b = map { $_ => 1 } @b; my @missing = grep { !$b{$_} } @a;

    Which should give, in that case "112" and "123"

      Re-posting, in case you did not notice my update to my previous post:

      If you really want to examine CURRENT, PREVIOUS and NEXT items in an array, consider using Array::Iterator::BiDirectional.

      However - the need for that is not clear, from the information you have provided so far.

      If you post pseudo-code (even if it does not work/compile) of what you are trying to do - we may provide better alternatives.

              If your eyes hurt after you drink coffee, you have to take the spoon out of the cup.
                    -Norm Crosby

        I have a database that keeps routing paths to a destination

        As such : Path network updatenumber 33 1 1 4 1 1 42 1 1 34 1 1 33 1 2 42 1 2 34 1 2

        So that is an example of a database whereby to reach a particular network in the example (1) you need to traverse through 33 -> 4 -> 42 -> 39, but as time goes on there are updates to the route. So, what i am trying to archive is to see the numbers in a path that appear and disappear often. Which is why i am comparing the first updated route, to the second updated route. With the difference, i will store in a separate table. If a value already exist on that table, i will just increment it.So logically the highest value on that table will be a device which is troubled.Because it keeps appearing and disappearing. In my example database above, 4 is a difference between both paths. So i will store that somewhere etc. From my question i already loaded this database values into the hash. I was just stuck at doing the previous->next logic.