X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=lib%2FDevel%2FDeclare.pm;h=759bed74f1e23a7757b870a428ce2296aa7602c8;hb=7715fb8f771b224a9469b86024c15baaa88deaab;hp=ed13aff5df8a546e469e3ba23bc682713e1afcf6;hpb=82e5ff1c3d52fbd019f0fd95ad383a3aeb18e930;p=p5sagit%2FDevel-Declare.git diff --git a/lib/Devel/Declare.pm b/lib/Devel/Declare.pm index ed13aff..759bed7 100644 --- a/lib/Devel/Declare.pm +++ b/lib/Devel/Declare.pm @@ -4,7 +4,7 @@ use strict; use warnings; use 5.008001; -our $VERSION = '0.002001'; +our $VERSION = '0.003003'; use constant DECLARE_NAME => 1; use constant DECLARE_PROTO => 2; @@ -14,6 +14,7 @@ use constant DECLARE_PACKAGE => 8+1; # name implicit use vars qw(%declarators %declarator_handlers @ISA); use base qw(DynaLoader); use Scalar::Util 'set_prototype'; +use B::Hooks::OP::Check; bootstrap Devel::Declare; @@ -96,7 +97,6 @@ sub shadow_sub { no strict 'refs'; my ($pack, $pname) = ($name =~ m/(.+)::([^:]+)/); push(@$temp_save, $pack->can($pname)); - delete ${"${pack}::"}{$pname}; no warnings 'redefine'; no warnings 'prototype'; *{$name} = $cr; @@ -285,18 +285,18 @@ sub linestr_callback { =head1 NAME -Devel::Declare - +Devel::Declare - Adding keywords to perl, in perl =head1 SYNOPSIS use Devel::Declare (); - use Scope::Guard; { package MethodHandlers; use strict; use warnings; + use B::Hooks::EndOfScope; our ($Declarator, $Offset); @@ -391,13 +391,12 @@ Devel::Declare - } sub inject_scope { - $^H |= 0x120000; - $^H{DD_METHODHANDLERS} = Scope::Guard->new(sub { + on_scope_end { my $linestr = Devel::Declare::get_linestr; my $offset = Devel::Declare::get_linestr_offset; substr($linestr, $offset, 0) = ';'; Devel::Declare::set_linestr($linestr); - }); + }; } }