}
}
-our $VERSION = '0.10009';
+our $VERSION = '0.10010';
$VERSION = eval $VERSION if $VERSION =~ /_/; # numify for warning-free dev releases
# when changing minimum version don't forget to adjust Makefile.PL as well
constant->import( TRACK_UNDEFER_FAIL => (
$INC{'Test/Builder.pm'} || $INC{'Test/Builder2.pm'}
and
- $0 =~ m|^ x?t / .+ \.t $|x
+ $0 =~ m{ ^ (?: \. \/ )? x?t / .+ \.t $}x
) ? 1 : 0 );
- require B;
- # a perl 5.6 kludge
- unless (B->can('perlstring')) {
- require Data::Dumper;
- my $d = Data::Dumper->new([])->Indent(0)->Purity(0)->Pad('')->Useqq(1)->Terse(1)->Freezer('')->Toaster('');
- *B::perlstring = sub { $d->Values([shift])->Dump };
- }
+ sub perlstring ($) { q{"}. quotemeta( shift ). q{"} };
}
# Yes this method is undocumented
if ($name =~ /\0/) {
Carp::croak(sprintf
"Illegal accessor name %s - nulls should never appear in stash keys",
- B::perlstring($name),
+ __CAG_ENV__::perlstring($name),
);
}
elsif (! $ENV{CAG_ILLEGAL_ACCESSOR_NAME_OK} ) {
cxsa_call => 'accessors',
pp_generator => sub {
# my ($group, $fieldname) = @_;
- my $quoted_fieldname = B::perlstring($_[1]);
+ my $quoted_fieldname = __CAG_ENV__::perlstring($_[1]);
sprintf <<'EOS', ($_[0], $quoted_fieldname) x 2;
@_ > 1
cxsa_call => 'getters',
pp_generator => sub {
# my ($group, $fieldname) = @_;
- my $quoted_fieldname = B::perlstring($_[1]);
+ my $quoted_fieldname = __CAG_ENV__::perlstring($_[1]);
sprintf <<'EOS', $_[0], $quoted_fieldname;
@_ > 1
cxsa_call => 'setters',
pp_generator => sub {
# my ($group, $fieldname) = @_;
- my $quoted_fieldname = B::perlstring($_[1]);
+ my $quoted_fieldname = __CAG_ENV__::perlstring($_[1]);
sprintf <<'EOS', $_[0], $quoted_fieldname;
@_ > 1
my ($resolved_methods, $cag_produced_crefs);
+sub CLONE {
+ my @crefs = grep { defined $_ } values %{$cag_produced_crefs||{}};
+ $cag_produced_crefs = @crefs
+ ? { map { $_ => $_ } @crefs }
+ : undef
+ ;
+}
+
# Note!!! Unusual signature
$gen_accessor = sub {
my ($type, $class, $group, $field, $methname) = @_;