Fix test failures on old perls
Florian Ragwitz [Tue, 12 Apr 2011 07:22:24 +0000 (09:22 +0200)]
This also makes the tests much more similar to MXD, which they emulate. Thanks
Zefram for this patch.

t/early0.t
t/early1_x.pm

index 2f5c94f..41d7e7c 100644 (file)
@@ -3,6 +3,7 @@ use warnings;
 use Test::More tests => 1;
 BEGIN {
     require Devel::Declare;
+    *class = sub (&) { $_[0]->() };
     Devel::Declare->setup_for(__PACKAGE__, {
         class => {
             const => sub {
@@ -13,9 +14,6 @@ BEGIN {
                 my $l = Devel::Declare::get_linestr();
                 substr $l, $off + 1, 0, 'pass q[injected];' . (';' x 1000);
                 Devel::Declare::set_linestr($l);
-                my $class = sub (&) { $_[0]->() };
-                no strict 'refs';
-                *{ $kw } = $class;
             },
         },
     });
index 89dc1cb..12fb55f 100644 (file)
@@ -4,6 +4,8 @@ use warnings;
 sub import {
     require Devel::Declare;
     my $caller = caller();
+    no strict 'refs';
+    *{ "${caller}::class" } = sub (&) { $_[0]->() };
     Devel::Declare->setup_for($caller, {
         class => {
             const => sub {
@@ -14,9 +16,6 @@ sub import {
                 my $l = Devel::Declare::get_linestr();
                 substr $l, $off + 1, 0, 'pass q[injected];' . (';' x 1000);
                 Devel::Declare::set_linestr($l);
-                my $class = sub (&) { $_[0]->() };
-                no strict 'refs';
-                *{ "${caller}::$kw" } = $class;
             },
         },
     });