Skip to content

Instantly share code, notes, and snippets.

@breezhang
Created April 16, 2014 13:43
Show Gist options
  • Save breezhang/10877493 to your computer and use it in GitHub Desktop.
Save breezhang/10877493 to your computer and use it in GitHub Desktop.
perl Hook aop attribute demo. less Mosss .............
package main;
use strict;
use warnings;
use constant DEBUG => 1;
use Attribute::Handlers;
use Data::Dumper::Concise;
use Hook::LexWrap;
sub _log : ATTR(CODE) {
if (DEBUG) {
wrap $_[1], pre => sub { print "before"; },
post => sub { print "after"; };
#my $name = *{$sym}{NAME};#*{$sym}{NAME};
#no warnings 'redefine';
#*{$sym} = sub {
# #log_message("Entering sub $pkg\:\:$name");
# my @ret = $code->(@_);
# #log_message("Leaving sub $pkg\:\:$name");
# return @ret;
};
};
#};
sub do_something : _log("helloworld") {
print "I'm doing something.\n";
}
;
do_something ("helloworld");
sub foobar{
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment