1#!./perl 2 3# These tests are not necessarily normative, but until such time as we 4# publicise an API for subclassing B::Deparse they can prevent us from 5# gratuitously breaking conventions that CPAN modules already use. 6 7use Test::More tests => 2; 8 9use B::Deparse; 10 11package B::Deparse::NameMangler { 12 @ISA = "B::Deparse"; 13 sub padname { SUPER::padname{@_} . '_groovy' } 14} 15 16my $nm = 'B::Deparse::NameMangler'->new; 17 18like $nm->coderef2text(sub { my($a, $b, $c) }), 19 qr/\$a_groovy, \$b_groovy, \$c_groovy/, 20 'overriding padname works for renaming lexicals'; 21 22like $nm->coderef2text(sub { my $c; /(??{ $c })/; }), 23 qr/\Q(??{\E \$c_groovy/, 24 'overriding padname works for renaming lexicals in regexp blocks'; 25