The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.
use strict;
use XML::Rules;

my $xml = <<'*END*';
<?xml version='1.0'?>
<employee>
        <name>John Doe</name>
        <age>43</age>
        <sex>M</sex>
        <department>Operations</department>
</employee>
*END*


{
	my $parser = new XML::Rules (
		rules => [
			_default => 'content',
			employee => 'pass no content',
		]
	);

	my $result = $parser->parsestring($xml);

	use Data::Dumper;
	print Dumper($result);
}

{
	my $parser = new XML::Rules (
		rules => [
			_default => 'content',
			employee => sub {print "$_[1]->{name} is $_[1]->{age} years old and works in the $_[1]->{department} section\n"},
		]
	);

	$parser->parsestring($xml);
}
print "\n\n";
{
my $xml = <<'*END*';
<?xml version='1.0'?>
<employees>
	<employee>
		<name>John Doe</name>
		<age>43</age>
		<sex>M</sex>
		<department>Operations</department>
	</employee>
	<employee>
		<name>Jane Doe</name>
		<age>31</age>
		<sex>F</sex>
		<department>Accounts</department>
	</employee>
	<employee>
		<name>Be Goode</name>
		<age>32</age>
		<sex>M</sex>
		<department>Human Resources</department>
	</employee>
</employees>
*END*

	my $parser = new XML::Rules (
		rules => [
			_default => 'content',
			employee => sub {print "$_[1]->{name}\nAge/Sex: $_[1]->{age}/$_[1]->{sex}\nDepartment: $_[1]->{department} section\n\n"},
		]
	);

	$parser->parsestring($xml);
}