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 warnings; 8use strict; 9use Test::More; 10 11use B::Deparse; 12 13package B::Deparse::NameMangler { 14 our @ISA = "B::Deparse"; 15 sub padname { SUPER::padname{@_} . '_groovy' } 16} 17 18my $nm = 'B::Deparse::NameMangler'->new; 19 20like $nm->coderef2text(sub { my($a, $b, $c) }), 21 qr/\$a_groovy, \$b_groovy, \$c_groovy/, 22 'overriding padname works for renaming lexicals'; 23 24like $nm->coderef2text(sub { my $c; /(??{ $c })/; }), 25 qr/\Q(??{\E \$c_groovy/, 26 'overriding padname works for renaming lexicals in regexp blocks'; 27 28done_testing(); 29