#!/usr/bin/perl use strict; use warnings; use XML::Simple; my $file = './Test.xml'; my $head = $ARGV[0] || 'Unknown'; my $map = XMLin($file, forcearray => ['header', 'act'], keyattr => { header => 'name'}); my $header = $map->{header}->{$head}; if($header) { foreach my $act ( @{$header->{act}} ) { print "act: $act\n"; } } else { print "No match for '$head'\n"; } #### my $map = XMLin($file, forcearray => ['header', 'act'], keyattr => {}); my $headers = $map->{header}; foreach my $header (@$headers) { if($header->{name} eq $head) { foreach my $act ( @{$header->{act}} ) { print "act: $act\n"; } } } #### unless ($config = $xs1->XMLin($file, forcearray => 1)) { print "Could NOT read $file IN:$!\n"; exit(); }