fix abstract
[p5sagit/Devel-Declare.git] / lib / Devel / Declare.pm
index b0f766e..bcaafb5 100644 (file)
@@ -1,24 +1,24 @@
 package Devel::Declare;
-# ABSTRACT: (DEPRECATED) Adding keywords to perl, in perl
 
 use strict;
 use warnings;
 use 5.008001;
 
-our $VERSION = '0.006019';
+our $VERSION = '0.006_021';
+
+bootstrap Devel::Declare;
+$VERSION =~ tr/_//d;
 
 use constant DECLARE_NAME => 1;
 use constant DECLARE_PROTO => 2;
 use constant DECLARE_NONE => 4;
 use constant DECLARE_PACKAGE => 8+1; # name implicit
 
-use vars qw(%declarators %declarator_handlers @ISA);
+our (%declarators, %declarator_handlers, @ISA);
 use base qw(DynaLoader);
 use Scalar::Util 'set_prototype';
 use B::Hooks::OP::Check 0.19;
 
-bootstrap Devel::Declare;
-
 @ISA = ();
 
 initialize();
@@ -288,7 +288,7 @@ sub linestr_callback {
 
 =head1 NAME
 
-Devel::Declare - Adding keywords to perl, in perl
+Devel::Declare - (DEPRECATED) Adding keywords to perl, in perl
 
 =head1 SYNOPSIS
 
@@ -309,6 +309,36 @@ over Perl's parser, allowing the creation of new syntax.
 
 This document describes how to create a simple declarator.
 
+=head1 WARNING
+
+=for comment mst wrote this warning for MooseX::Declare, and ether adapted it for here:
+
+B<Warning:> Devel::Declare is a giant bag of crack
+originally implemented by mst with the goal of upsetting the perl core
+developers so much by its very existence that they implemented proper
+keyword handling in the core.
+
+As of perl5 version 14, this goal has been achieved, and modules such
+as L<Devel::CallParser>, L<Function::Parameters>, and L<Keyword::Simple> provide
+mechanisms to mangle perl syntax that don't require hallucinogenic
+drugs to interpret the error messages they produce.
+
+If you are using something that uses Devel::Declare, please for the love
+of kittens use something else:
+
+=over 4
+
+=item *
+
+Instead of L<TryCatch>, use L<Try::Tiny>
+
+=item *
+
+Instead of L<Method::Signatures>, use
+L<real subroutine signatures|perlsub/Signatures> (requires perl 5.22) or L<Moops>
+
+=back
+
 =head1 USAGE
 
 We'll demonstrate the usage of C<Devel::Declare> with a motivating example: a new