use XML::Smart ; my $XML = new XML::Smart(q` `,'smart'); $XML = $XML->cut_root ; my $show = 123 ; my @output = @{ $XML->{output}('name','eq',$show){frames} } ; print "\n == Available Frame Formats For $show =="; foreach my $o (@output ){ print "\n $o->{format}" ; } #### == Available Frame Formats For 123 == a b