Add built local::lib
[catagits/Gitalist.git] / local-lib5 / man / man3 / Moose::Autobox.3pm
1 .\" Automatically generated by Pod::Man 2.22 (Pod::Simple 3.10)
2 .\"
3 .\" Standard preamble:
4 .\" ========================================================================
5 .de Sp \" Vertical space (when we can't use .PP)
6 .if t .sp .5v
7 .if n .sp
8 ..
9 .de Vb \" Begin verbatim text
10 .ft CW
11 .nf
12 .ne \\$1
13 ..
14 .de Ve \" End verbatim text
15 .ft R
16 .fi
17 ..
18 .\" Set up some character translations and predefined strings.  \*(-- will
19 .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left
20 .\" double quote, and \*(R" will give a right double quote.  \*(C+ will
21 .\" give a nicer C++.  Capital omega is used to do unbreakable dashes and
22 .\" therefore won't be available.  \*(C` and \*(C' expand to `' in nroff,
23 .\" nothing in troff, for use with C<>.
24 .tr \(*W-
25 .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p'
26 .ie n \{\
27 .    ds -- \(*W-
28 .    ds PI pi
29 .    if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch
30 .    if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\"  diablo 12 pitch
31 .    ds L" ""
32 .    ds R" ""
33 .    ds C` ""
34 .    ds C' ""
35 'br\}
36 .el\{\
37 .    ds -- \|\(em\|
38 .    ds PI \(*p
39 .    ds L" ``
40 .    ds R" ''
41 'br\}
42 .\"
43 .\" Escape single quotes in literal strings from groff's Unicode transform.
44 .ie \n(.g .ds Aq \(aq
45 .el       .ds Aq '
46 .\"
47 .\" If the F register is turned on, we'll generate index entries on stderr for
48 .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index
49 .\" entries marked with X<> in POD.  Of course, you'll have to process the
50 .\" output yourself in some meaningful fashion.
51 .ie \nF \{\
52 .    de IX
53 .    tm Index:\\$1\t\\n%\t"\\$2"
54 ..
55 .    nr % 0
56 .    rr F
57 .\}
58 .el \{\
59 .    de IX
60 ..
61 .\}
62 .\"
63 .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2).
64 .\" Fear.  Run.  Save yourself.  No user-serviceable parts.
65 .    \" fudge factors for nroff and troff
66 .if n \{\
67 .    ds #H 0
68 .    ds #V .8m
69 .    ds #F .3m
70 .    ds #[ \f1
71 .    ds #] \fP
72 .\}
73 .if t \{\
74 .    ds #H ((1u-(\\\\n(.fu%2u))*.13m)
75 .    ds #V .6m
76 .    ds #F 0
77 .    ds #[ \&
78 .    ds #] \&
79 .\}
80 .    \" simple accents for nroff and troff
81 .if n \{\
82 .    ds ' \&
83 .    ds ` \&
84 .    ds ^ \&
85 .    ds , \&
86 .    ds ~ ~
87 .    ds /
88 .\}
89 .if t \{\
90 .    ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u"
91 .    ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u'
92 .    ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u'
93 .    ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u'
94 .    ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u'
95 .    ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u'
96 .\}
97 .    \" troff and (daisy-wheel) nroff accents
98 .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V'
99 .ds 8 \h'\*(#H'\(*b\h'-\*(#H'
100 .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#]
101 .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H'
102 .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u'
103 .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#]
104 .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#]
105 .ds ae a\h'-(\w'a'u*4/10)'e
106 .ds Ae A\h'-(\w'A'u*4/10)'E
107 .    \" corrections for vroff
108 .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u'
109 .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u'
110 .    \" for low resolution devices (crt and lpr)
111 .if \n(.H>23 .if \n(.V>19 \
112 \{\
113 .    ds : e
114 .    ds 8 ss
115 .    ds o a
116 .    ds d- d\h'-1'\(ga
117 .    ds D- D\h'-1'\(hy
118 .    ds th \o'bp'
119 .    ds Th \o'LP'
120 .    ds ae ae
121 .    ds Ae AE
122 .\}
123 .rm #[ #] #H #V #F C
124 .\" ========================================================================
125 .\"
126 .IX Title "Moose::Autobox 3"
127 .TH Moose::Autobox 3 "2009-10-12" "perl v5.8.7" "User Contributed Perl Documentation"
128 .\" For nroff, turn off justification.  Always turn off hyphenation; it makes
129 .\" way too many mistakes in technical documents.
130 .if n .ad l
131 .nh
132 .SH "NAME"
133 Moose::Autobox \- Autoboxed wrappers for Native Perl datatypes
134 .SH "SYNOPOSIS"
135 .IX Header "SYNOPOSIS"
136 .Vb 1
137 \&  use Moose::Autobox;
138 \&  
139 \&  print \*(AqPrint squares from 1 to 10 : \*(Aq;
140 \&  print [ 1 .. 10 ]\->map(sub { $_ * $_ })\->join(\*(Aq, \*(Aq);
141 .Ve
142 .SH "DESCRIPTION"
143 .IX Header "DESCRIPTION"
144 Moose::Autobox provides an implementation of \s-1SCALAR\s0, \s-1ARRAY\s0, \s-1HASH\s0
145 & \s-1CODE\s0 for use with autobox. It does this using a hierarchy of 
146 roles in a manner similar to what Perl 6 \fImight\fR do. This module, 
147 like Class::MOP and Moose, was inspired by my work on the 
148 Perl 6 Object Space, and the 'core types' implemented there.
149 .SS "A quick word about autobox"
150 .IX Subsection "A quick word about autobox"
151 The autobox module provides the ability for calling 'methods' 
152 on normal Perl values like Scalars, Arrays, Hashes and Code 
153 references. This gives the illusion that Perl's types are first-class 
154 objects. However, this is only an illusion, albeit a very nice one.
155 I created this module because autobox itself does not actually 
156 provide an implementation for the Perl types but instead only provides 
157 the 'hooks' for others to add implementation too.
158 .SS "Is this for real? or just play?"
159 .IX Subsection "Is this for real? or just play?"
160 Several people are using this module in serious applications and 
161 it seems to be quite stable. The underlying technologies of autobox
162 and Moose::Role are also considered stable. There is some performance
163 hit, but as I am fond of saying, nothing in life is free. If you have 
164 any questions regarding this module, either email me, or stop by #moose
165 on irc.perl.org and ask around.
166 .SS "Adding additional methods"
167 .IX Subsection "Adding additional methods"
168 \&\fBMoose::Autobox\fR asks autobox to use the \fBMoose::Autobox::*\fR namespace 
169 prefix so as to avoid stepping on the toes of other autobox modules. This 
170 means that if you want to add methods to a particular perl type 
171 (i.e. \- monkeypatch), then you must do this:
172 .PP
173 .Vb 1
174 \&  sub Moose::Autobox::SCALAR::bar { 42 }
175 .Ve
176 .PP
177 instead of this:
178 .PP
179 .Vb 1
180 \&  sub SCALAR::bar { 42 }
181 .Ve
182 .PP
183 as you would with vanilla autobox.
184 .SH "METHODS"
185 .IX Header "METHODS"
186 .ie n .IP "\fBmixin_additional_role ($type, \fB$role\fB)\fR" 4
187 .el .IP "\fBmixin_additional_role ($type, \f(CB$role\fB)\fR" 4
188 .IX Item "mixin_additional_role ($type, $role)"
189 This will mixin an additonal \f(CW$role\fR into a certain \f(CW$type\fR. The 
190 types can be \s-1SCALAR\s0, \s-1ARRAY\s0, \s-1HASH\s0 or \s-1CODE\s0.
191 .Sp
192 This can be used to add additional methods to the types, see the 
193 \&\fIexamples/units/\fR directory for some examples.
194 .SH "TODO"
195 .IX Header "TODO"
196 .IP "More docs" 4
197 .IX Item "More docs"
198 .PD 0
199 .IP "More tests" 4
200 .IX Item "More tests"
201 .PD
202 .SH "BUGS"
203 .IX Header "BUGS"
204 All complex software has bugs lurking in it, and this module is no 
205 exception. If you find a bug please either email me, or add the bug
206 to cpan-RT.
207 .SH "AUTHOR"
208 .IX Header "AUTHOR"
209 Stevan Little <stevan@iinteractive.com>
210 .PP
211 \&\fBwith contributions from:\fR
212 .PP
213 Anders (Debolaz) Nor Berle
214 .PP
215 Matt (mst) Trout
216 .PP
217 renormalist
218 .SH "COPYRIGHT AND LICENSE"
219 .IX Header "COPYRIGHT AND LICENSE"
220 Copyright 2006\-2008 by Infinity Interactive, Inc.
221 .PP
222 <http://www.iinteractive.com>
223 .PP
224 This library is free software; you can redistribute it and/or modify
225 it under the same terms as Perl itself.