#!/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"; }