The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.
package Yote::PerfAspect;

use strict;
use warnings;

use vars qw($VERSION);
$VERSION = '0.01';

use Aspect;

use Time::HiRes;

my @stack;
around {
#    print STDERR Data::Dumper->Dump([$_]);
    print STDERR "Start with $_->{sub_name}\n";
    my $start = [Time::HiRes::gettimeofday];
    push @stack, $_->{sub_name};
    $_->proceed;
    my $time = 1_000_000 * Time::HiRes::tv_interval( $start );
    print STDERR "@ ".join(',',@stack). " : $time\n";
    pop @stack;
} call qr/^Yote:.*[^a-zA-Z_][a-z_].*/;

1;

__END__

=head1 AUTHOR

Eric Wolf

=head1 LICENSE AND COPYRIGHT

Copyright (C) 2011 Eric Wolf

This module is free software; it can be used under the same terms as perl
itself.

=cut