#!/usr/bin/perl
use strict;
use warnings;
no warnings qw(uninitialized);
use XML::Rules;
my $xml = <<'XML';
2011-04-09T11:12:22.049Z
121422
ABC
2012-04-09T11:12:22.049Z
13427
CDE
2010-04-09T11:12:22.049Z
89822
LKK
XML
my @rules = (
'str' => sub {
return unless $_[1]->{name} eq 'docuid';
my $id = $_[1]->{_content};
$_[4]->{pad} = $id if ($id > $_[4]->{pad});
return;
},
'all' => sub { return $_[4]->{pad}; }
);
my $parser = XML::Rules->new(rules => \@rules);
my $max_value = $parser->parse( $xml );
print "The max value is: $max_value\n";
####
use XML::Rules max_docuid => {
method => 'parse',
rules => {
'str' => sub {
return unless $_[1]->{name} eq 'docuid';
my $id = $_[1]->{_content};
$_[4]->{pad} = $id if ($id > $_[4]->{pad});
return;
},
'all' => sub { return $_[4]->{pad}; }
}
};
#...
print "The max value is: " . max_docuid($xml) . "\n";