http://www.perlmonks.org?node_id=863190


in reply to Dereference Hash of Arrays

It would be nice if you:

  1. Indented properly.
  2. More significantly (this is a "teach a person to fish" principle): learn a basic premise of debugging/programming problem-solving whereby you come up with simple demos for a step you are not sure of. Eg, if you are uncertain about "hash of array" syntax in a specific case, write a standalone script using a similar data structure, but uncomplicated by extraneous elements such as the use of regexps. This way, you can separate your data structure management from your use of regexps and determine where your challenge/problem lies.

>>I would like to output the entire array for the match Untrust to DMZ.

So you have a hash of sections based on the id number after "set policy id ". That being the case, what's wrong with:

for my $id ( keys %id_policy ) { foreach (@{ $id_policy{$id} }) { if ( /set\spolicy\sid\s(\d+)\s(from|name\s\"[^"]+\"\sfrom)\s\" +Untrust\"\sto\s"DMZ/ ) { foreach my $line (@{$id_policy{$id}}) { print $line } } }
}

Replies are listed 'Best First'.
Re^2: Dereference Hash of Arrays
by k_grdn (Novice) on Oct 05, 2010 at 08:00 UTC
      Thank you very much for your reply, sure I tried that but as suggested stripping back the code would have been the best method for a self explanatory result.

      Thanks Again