ABSTRACT_FROM => 'lib/B/RecDeparse.pm',
PL_FILES => {},
PREREQ_PM => {
- 'Carp' => 0,
- 'B::Deparse' => 0
+ 'B::Deparse' => 0,
+ 'Config' => 0,
+ 'Carp' => 0
},
dist => {
PREOP => 'pod2text lib/Variable/Magic.pm > $(DISTVNAME)/README; '
use warnings;
use Carp qw/croak/;
+use Config;
use base qw/B::Deparse/;
=cut
+use constant {
+ # p31268 made pp_entersub call single_delim
+ FOOL_SINGLE_DELIM =>
+ ($^V ge v5.9.5)
+ || ($Config{perl_patchlevel} && $Config{perl_patchlevel} >= 31268)
+};
+
sub _parse_args {
croak 'Optional arguments must be passed as key/value pairs' if @_ % 2;
my %args = @_;
my $key = $; . __PACKAGE__ . $;;
-# p31268 made pp_entersub call single_delim
-if ($^V ge v5.9.5) {
+if (FOOL_SINGLE_DELIM) {
my $oldsd = *B::Deparse::single_delim{CODE};
no warnings 'redefine';
*B::Deparse::single_delim = sub {
++$self->{brd_cur};
$body = 'sub ' . $self->indent($self->deparse_sub($gv->CV));
--$self->{brd_cur};
- if ($^V lt v5.9.5) {
- $body .= '->';
- } else {
+ if (FOOL_SINGLE_DELIM) {
$body = $key . $body;
+ } else {
+ $body .= '->';
}
}
return $body;
=head1 DEPENDENCIES
-L<Carp> (standard since perl 5), L<B::Deparse> (since perl 5.005).
+L<Carp> (standard since perl 5), L<Config> (since perl 5.00307) and L<B::Deparse> (since perl 5.005).
=head1 AUTHOR