]> git.vpit.fr Git - perl/modules/B-RecDeparse.git/commitdiff
Also fool B::Deparse::single_delim when patchlevel >= 31268. Make Config a dependency
authorVincent Pit <vince@profvince.com>
Mon, 28 Jul 2008 16:14:09 +0000 (18:14 +0200)
committerVincent Pit <vince@profvince.com>
Mon, 28 Jul 2008 16:14:09 +0000 (18:14 +0200)
META.yml
Makefile.PL
lib/B/RecDeparse.pm

index bc040de41dee8604a079b12f60172e28059a9c93..7c4e4d1e071a2d9291ff31d6c98c3abc3ebf9e27 100644 (file)
--- a/META.yml
+++ b/META.yml
@@ -10,6 +10,7 @@ distribution_type:   module
 requires:     
     B::Deparse:                    0
     Carp:                          0
+    Config:                        0
 meta-spec:
     url:     http://module-build.sourceforge.net/META-spec-v1.3.html
     version: 1.3
index 065172c8a5bf6f067a1a9fb5e067f3f38bbae1ed..a569c7b3ec1afab61a15769d725cd07e90cc8b28 100644 (file)
@@ -25,8 +25,9 @@ WriteMakefile(
     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; '
index fb712d91d660f8405d7a9f728dc45d051bfbb39d..da731d951e4a8e602565410e22ad334a75886bc4 100644 (file)
@@ -4,6 +4,7 @@ use strict;
 use warnings;
 
 use Carp qw/croak/;
+use Config;
 
 use base qw/B::Deparse/;
 
@@ -43,6 +44,13 @@ The L<B::RecDeparse> object constructor. You can specify the underlying L<B::Dep
 
 =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 = @_;
@@ -97,8 +105,7 @@ sub init {
 
 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 {
@@ -138,10 +145,10 @@ sub pp_gv {
   ++$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;
@@ -167,7 +174,7 @@ An object-oriented module shouldn't export any function, and so does this one.
 
 =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