X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=lib%2FClass%2FAccessor%2FGrouped.pm;h=3096b21e915f3c1fee170e1628a3d370407d4c5e;hb=e4cb632058a1584cd2727d5f7fc98dbeb6728aea;hp=ca61579f15cbf680d9c80660131a450ede764498;hpb=dff527926d36a268c0bb9e283a529ba68c98fc33;p=p5sagit%2FClass-Accessor-Grouped.git diff --git a/lib/Class/Accessor/Grouped.pm b/lib/Class/Accessor/Grouped.pm index ca61579..3096b21 100644 --- a/lib/Class/Accessor/Grouped.pm +++ b/lib/Class/Accessor/Grouped.pm @@ -71,17 +71,13 @@ BEGIN { $0 =~ m|^ x?t / .+ \.t $|x ) ? 1 : 0 ); - *Class::Accessor::Grouped::perlstring = ($] < '5.008') - ? do { - require Data::Dumper; - my $d = Data::Dumper->new([])->Indent(0)->Purity(0)->Pad('')->Useqq(1)->Terse(1)->Freezer('')->Toaster(''); - sub { $d->Values([shift])->Dump }; - } - : do { - require B; - \&B::perlstring; - } - ; + 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 }; + } } # Yes this method is undocumented @@ -109,7 +105,7 @@ sub _mk_group_accessors { if ($name =~ /\0/) { Carp::croak(sprintf "Illegal accessor name %s - nulls should never appear in stash keys", - perlstring($name), + B::perlstring($name), ); } elsif (! $ENV{CAG_ILLEGAL_ACCESSOR_NAME_OK} ) { @@ -707,7 +703,7 @@ my $maker_templates = { cxsa_call => 'accessors', pp_generator => sub { # my ($group, $fieldname) = @_; - my $quoted_fieldname = perlstring($_[1]); + my $quoted_fieldname = B::perlstring($_[1]); sprintf <<'EOS', ($_[0], $quoted_fieldname) x 2; @_ > 1 @@ -721,7 +717,7 @@ EOS cxsa_call => 'getters', pp_generator => sub { # my ($group, $fieldname) = @_; - my $quoted_fieldname = perlstring($_[1]); + my $quoted_fieldname = B::perlstring($_[1]); sprintf <<'EOS', $_[0], $quoted_fieldname; @_ > 1 @@ -741,7 +737,7 @@ EOS cxsa_call => 'setters', pp_generator => sub { # my ($group, $fieldname) = @_; - my $quoted_fieldname = perlstring($_[1]); + my $quoted_fieldname = B::perlstring($_[1]); sprintf <<'EOS', $_[0], $quoted_fieldname; @_ > 1