http://www.perlmonks.org?node_id=1013090


in reply to Re^3: Moose: using value of one attribute in another attribute
in thread Moose: using value of one attribute in another attribute

A simpler alternative to caller would be:

my $private = sub { ... };

Replies are listed 'Best First'.
Re^5: Moose: using value of one attribute in another attribute
by tobyink (Canon) on Jan 13, 2013 at 07:10 UTC

    True; that slipped my mind (even though I use the technique occasionally). These things are mostly circumventable (Scope::Upper for caller, PadWalker for lexical coderefs, etc), but perhaps the lexical subs coming in Perl 5.18 will be different.

    perl -E'sub Monkey::do{say$_,for@_,do{($monkey=[caller(0)]->[3])=~s{::}{ }and$monkey}}"Monkey say"->Monkey::do'