in reply to
Dereference Hash of Arrays
It would be nice if you:
- Indented properly.
- 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 }
}
}
}