]> git.vpit.fr Git - perl/modules/Lexical-Types.git/commitdiff
Document the initializer method in its own section
authorVincent Pit <vince@profvince.com>
Sat, 7 Mar 2009 12:10:15 +0000 (13:10 +0100)
committerVincent Pit <vince@profvince.com>
Sat, 7 Mar 2009 12:10:15 +0000 (13:10 +0100)
lib/Lexical/Types.pm

index 36960d88603cac0621c2a7620332192b8990c93a..c5c416b97f53da70db2d906db7fd4c91f8d11059 100644 (file)
@@ -127,9 +127,6 @@ or the desired package and method name, in that order (if any of those is C<unde
 
 =back
 
-The initializer method receives an alias to the pad entry of C<$x> in C<$_[1]> and the original type name (C<Str>) in C<$_[2]>.
-You can either edit C<$_[1]> in place, in which case you should return an empty list, or return a new scalar that will be copied into C<$x>.
-
 =cut
 
 sub import {
@@ -170,6 +167,22 @@ sub unimport {
  $^H{+(__PACKAGE__)} = undef;
 }
 
+=head1 RUN-TIME INITIALIZER METHOD
+
+The initializer method receives an alias to the pad slot of the initialized lexical in C<$_[1]> and the original type name in C<$_[2]>.
+You can either edit C<$_[1]> in place, in which case you should return an empty list, or return a new scalar that will be copied into the pad slot.
+
+    use Lexical::Types as => 'My';
+
+    my Str $x;
+
+    ...
+
+    sub My::Str::TYPEDSCALAR {
+     # $_[1] is an alias to $x, and $_[2] is 'Str'
+     ...
+    }
+
 =head1 INTEGRATION
 
 You can integrate L<Lexical::Types> in your module so that using it will provide types to your users without asking them to load either L<Lexical::Types> or the type classes manually.