X-Git-Url: http://git.vpit.fr/?a=blobdiff_plain;f=lib%2FLexical%2FTypes.pm;h=a3b285af561977209e7b55048f89c2f578e81476;hb=46563a4451087c17e95a7ec9d33eb7ff0cc674d4;hp=ae17a75cd15980b6fdf9a532273b8cbab133d9ad;hpb=005b1303d3fd36462b38b097f8c4f5abc7aa8369;p=perl%2Fmodules%2FLexical-Types.git diff --git a/lib/Lexical/Types.pm b/lib/Lexical/Types.pm index ae17a75..a3b285a 100644 --- a/lib/Lexical/Types.pm +++ b/lib/Lexical/Types.pm @@ -76,11 +76,15 @@ BEGIN { XSLoader::load(__PACKAGE__, $VERSION); } -=head1 FUNCTIONS +=head1 METHODS -=head2 C<< import [ as => [ $prefix | $mangler ] ] >> +=head2 C -Magically called when writing C. + use Lexical::Types; + use Lexical::Types as => $prefix; + use Lexical::Types as => sub { ... }; # = $mangler + +Magically called when C is encountered. All the occurences of C 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'> : @@ -110,7 +114,9 @@ If the value given is a code reference C<$mangler>, it will be called at compile either an empty list, in which case the current typed lexical definition will be skipped (thus it won't be altered to trigger a run-time hook) ; - use Lexical::Types as => sub { return $_[0] =~ /Str/ ? @_ : () }; + use Lexical::Types as => sub { + return $_[0] =~ /Str/ ? @_ : () + }; my Str $y; # calls Str->TYPEDSCALAR my Int $x; # nothing special @@ -165,7 +171,9 @@ sub import { =head2 C -Magically called when writing C. + no Lexical::Types; + +Magically called when C is encountered. Turns the pragma off. =cut