use strict; use warnings; use XML::Simple; use Data::Dumper; my $string = do { local $/; }; my $ref = XMLin($string); print Dumper $ref; my $num_events = @{$ref->{EVENT}}; print "There are $num_events events listed\n"; __DATA__ test2 iwu today interest a lot descrip test3 hi how interest are #### my @events; while ($page_body =~ /(.*?)<\/EVENT>/sg){ push @events, $1 #note $1 might have zero length. }