in reply to Track the filename/line number of an anonymous coderef
I changed this around to do it for arbitrary coderefs, since I get to deal with some that come from other sources. Instead of catching them at definition time, I "enchant" them later.
This looks like it could be a useful decorator if I work on the concept a little more. So Randal, who wants to upload it to CPAN first?
#!/usr/bin/perl my $a = sub { print "I am A\n" }; my $b = sub { print "I am B\n" }; $a->(); $b->(); $c = MagicalCodeRef->enchant( $a ); $a->(); print STDERR "That was $a I just called\n"; BEGIN { package MagicalCodeRef; use overload '""' => sub { require B; my $ref = shift; my $gv = B::svref_2object($ref)->GV; sprintf "%s:%d", $gv->FILE, $gv->LINE; }; sub enchant { bless $_[1], $_[0] } }
|
---|
Replies are listed 'Best First'. | |
---|---|
Re^2: Track the filename/line number of an anonymous coderef
by Anonymous Monk on May 12, 2022 at 14:20 UTC | |
by hv (Prior) on May 12, 2022 at 17:56 UTC |