FWIW, your code works fine for me.
#!/usr/bin/perl -w
use strict;
use XML::Parser::Lite;
my $p1 = new XML::Parser::Lite;
$p1->setHandlers(
Start => sub { shift; print "start: @_\n" },
Char => sub { shift; print "char: @_\n" },
End => sub { shift; print "end: @_\n" },
);
$p1->parse('<foo id="me">Hello World!</foo>');
__END__
% perl -v
This is perl, v5.8.4 built for i386-linux-thread-multi
Copyright 1987-2004, Larry Wall
# etc.
% perl -w 473600.pl
start: foo id me
char: Hello World!
end: foo
start: foo id me
char: Hello World!
end: foo
% perl -wd 473600.pl
Loading DB routines from perl5db.pl version 1.23
Editor support available.
Enter h or `h h' for help, or `man perldebug' for more help.
main::(473600.pl:5): my $p1 = new XML::Parser::Lite;
DB<1> n
main::(473600.pl:11): );
DB<1> n
main::(473600.pl:13): $p1->parse('<foo id="me">Hello World!</foo>');
main::(473600.pl:14): __END__
DB<1> n
start: foo id me
char: Hello World!
end: foo
Debugged program terminated. Use q to quit or R to restart,