use warnings; use strict; use XML::Rules; my $xml = < XML my @rules = ( Validation => sub { my $d = $_[1]; my @v = grep { $d->{$_} eq 'true' } keys %$d; print join(",", @v), "\n"; }, _default => undef, ); my $xr = XML::Rules->new( rules => \@rules ); $xr->parse($xml);