=head1 VERSION
-Version 0.01
+Version 0.02
=cut
our $VERSION;
BEGIN {
- $VERSION = '0.01';
+ $VERSION = '0.02';
}
=head1 SYNOPSIS
Magically called when writing C<use Lexical::Types>.
All the occurences of C<my Str $x> in the current lexical scope will be changed to call at each run a given method in a given package.
-The method and package are determined by the parameter C<as> :
+The method and package are determined by the parameter C<'as'> :
=over 4
=head1 CAVEATS
-For C<perl> to be able to parse C<my Str $x>, the package C<Str> must be defined somewhere, and this even if you use the C<as> option to redirect to another package.
-It's unlikely to find a workaround, as this happens deep inside the lexer, far from the reach of an extension.
+For C<perl> to be able to parse C<my Str $x>, you need :
+
+=over 4
+
+=item *
+
+either the C<Str> package to be defined ;
+
+=item *
+
+or for C<Str> to be a constant sub returning a valid defined package.
+
+=back
+
+Those restrictions apply even if you use the C<'as'> option to redirect to another package, and are unlikely to find a workaround as this happens deep inside the lexer - far from the reach of an extension.
Only one mangler or prefix can be in use at the same time in a given scope.
Inspired by Ricardo Signes.
+Thanks Florian Ragwitz for suggesting the use of constants for types.
+
=head1 COPYRIGHT & LICENSE
Copyright 2009 Vincent Pit, all rights reserved.