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

kiranveluri has asked for the wisdom of the Perl Monks concerning the following question:

Hi I am new to perl,trying to read an XML file attached below.I am able to read the file using XML::Simple Module.I could not loop through the hash.Can some one help me in looping through the variables mentioned in below XML file output . I tried variuos scenarions but couldn't parse through the elements.

$VAR1 = { 'cmd' => { 'parameter' => { 'Additional information about port $ +port' => { + 'cycle' => '1300', + 'command' => [ + { + 'run' => 'ps -fp $pid', + 'text' => '^(\\w+)\\s+\\d+\\s+(\\d+)\\s+\\S+\ +\s+\\S+\\s+\\S+\\s+\\d+:\\d+:\\d+\\s+(.*)$', + 'output' => 'Full command line:$3, Parent PID +:$2' + }, + { + 'run' => 'service iptables status | grep dpt: +$port', + 'text' => '^(\\d+)\\s+(DROP|ACCEPT)\\s+(udp|t +cp|icmp|all)\\s+\\S+\\s+(\\S+)\\s+(\\S+)\\s+(.*)$', + 'output' => 'Iptables takes action $2 for por +t $port' + } + ] + }, 'Tcp Ports In Listen State' => { 'cycl +e' => '1200', 'comm +and' => [ + { + 'run' => 'netstat -pant | grep LISTEN', + 'text' => '^(\\w+)\\s+\\d+\\s+\\d+\\s+[\\d.]+:(\\d+)\\s+[\\ +d.]+:\\D+\\s+\\S+\\s+(\\d+)/(\\S+)', + 'data' => ' $protocol = $1 $port = $2 $pid = $3', + 'output' => ' $1 port $2 was opened by $4 process having p +id $3' + } + ] } } } }