($package,$symbol) = $qualified_name =~ /(.*)::(.*)/;
####
RESULTS:
$qualified_name = 'My::Class::Path::func'
Benchmark: timing 100000 iterations of Lunatic...
Lunatic: 15 wallclock secs (13.99 usr + 0.00 sys = 13.99 CPU)
$qualified_name = 'My::Class::Path::myfunc'
Benchmark: timing 100000 iterations of Jeff1, Jeff2...
Jeff1: 8 wallclock secs ( 8.95 usr + 0.00 sys = 8.95 CPU)
Jeff2: 9 wallclock secs ( 8.82 usr + 0.00 sys = 8.82 CPU)
####
$qualified_name = 'My::Class::Path::myfuncdamnthisisareallylongstring'
Benchmark: timing 100000 iterations of Jeff1, Jeff2...
Jeff1: 12 wallclock secs (12.54 usr + 0.00 sys = 12.54 CPU)
Jeff2: 10 wallclock secs ( 9.55 usr + 0.00 sys = 9.55 CPU)
$qualified_name = 'My::REALLYLONGClass::PathPathPath::myfuncdamnthisisareallylongstring'
Benchmark: timing 100000 iterations of Jeff1, Jeff2...
Jeff1: 12 wallclock secs (12.73 usr + 0.00 sys = 12.73 CPU)
Jeff2: 8 wallclock secs ( 9.14 usr + 0.00 sys = 9.14 CPU)
$qualified_name = 'My::REALLYLONGClass::PathPathPath::myfunc'
Benchmark: timing 100000 iterations of Jeff1, Jeff2...
Jeff1: 11 wallclock secs ( 9.12 usr + 0.00 sys = 9.12 CPU)
Jeff2: 8 wallclock secs ( 8.78 usr + 0.00 sys = 8.78 CPU)
####
my ($pkg,$sym) = unpack
"A" . rindex($qualified_name, "::") . " x2 A*",
$qualified_name;