$caller = "My::Class::Path::myfunc"; # Fastest method # regex-with-prematch my ($func) = $caller =~ /::([^:]*)$/; my $class = $`; # aka. $PREMATCH # Second place; only .09sec in 100,000 iterations slower # split-pop-join my (@objpath) = split(/::/, $caller); my ($func) = pop @objpath; my ($class) = join('::', @objpath); # Third place; 25% slower # globalrx-pop-join my (@objpath) = $caller =~ /([^:]+)/g; my ($func) = pop @objpath; my ($class) = join('::', @objpath);