in reply to RFC: Simulating Python's @decorators in Perl with Attributes

MooseX::ModifyTaggedMethods (disclaimer: I wrote it) provides a little sugar if you happen to be using Moose...

#!/usr/bin/env perl use v5.14; package MyClass { use Moose; use MooseX::ModifyTaggedMethods; use Sub::Talisman qw( Bold Italic ); around methods_tagged("Bold") => sub { my ($orig, $self, @params) = @_; my $string = $self->$orig(@params); return "<b>$string</b>"; }; around methods_tagged("Italic") => sub { my ($orig, $self, @params) = @_; my $string = $self->$orig(@params); return "<i>$string</i>"; }; sub greeting :Bold :Italic { return "Hello World"; } } say MyClass->greeting;
package Cow { use Moo; has name => (is => 'lazy', default => sub { 'Mooington' }) } say Cow->new->name