Initial commit of OpenSPARC T2 design and verification files.
[OpenSPARC-T2-DV] / tools / perl-5.8.0 / man / man3 / utf8.3
CommitLineData
86530b38
AT
1.\" Automatically generated by Pod::Man v1.34, Pod::Parser v1.13
2.\"
3.\" Standard preamble:
4.\" ========================================================================
5.de Sh \" Subsection heading
6.br
7.if t .Sp
8.ne 5
9.PP
10\fB\\$1\fR
11.PP
12..
13.de Sp \" Vertical space (when we can't use .PP)
14.if t .sp .5v
15.if n .sp
16..
17.de Vb \" Begin verbatim text
18.ft CW
19.nf
20.ne \\$1
21..
22.de Ve \" End verbatim text
23.ft R
24.fi
25..
26.\" Set up some character translations and predefined strings. \*(-- will
27.\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left
28.\" double quote, and \*(R" will give a right double quote. | will give a
29.\" real vertical bar. \*(C+ will give a nicer C++. Capital omega is used to
30.\" do unbreakable dashes and therefore won't be available. \*(C` and \*(C'
31.\" expand to `' in nroff, nothing in troff, for use with C<>.
32.tr \(*W-|\(bv\*(Tr
33.ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p'
34.ie n \{\
35. ds -- \(*W-
36. ds PI pi
37. if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch
38. if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch
39. ds L" ""
40. ds R" ""
41. ds C` ""
42. ds C' ""
43'br\}
44.el\{\
45. ds -- \|\(em\|
46. ds PI \(*p
47. ds L" ``
48. ds R" ''
49'br\}
50.\"
51.\" If the F register is turned on, we'll generate index entries on stderr for
52.\" titles (.TH), headers (.SH), subsections (.Sh), items (.Ip), and index
53.\" entries marked with X<> in POD. Of course, you'll have to process the
54.\" output yourself in some meaningful fashion.
55.if \nF \{\
56. de IX
57. tm Index:\\$1\t\\n%\t"\\$2"
58..
59. nr % 0
60. rr F
61.\}
62.\"
63.\" For nroff, turn off justification. Always turn off hyphenation; it makes
64.\" way too many mistakes in technical documents.
65.hy 0
66.if n .na
67.\"
68.\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2).
69.\" Fear. Run. Save yourself. No user-serviceable parts.
70. \" fudge factors for nroff and troff
71.if n \{\
72. ds #H 0
73. ds #V .8m
74. ds #F .3m
75. ds #[ \f1
76. ds #] \fP
77.\}
78.if t \{\
79. ds #H ((1u-(\\\\n(.fu%2u))*.13m)
80. ds #V .6m
81. ds #F 0
82. ds #[ \&
83. ds #] \&
84.\}
85. \" simple accents for nroff and troff
86.if n \{\
87. ds ' \&
88. ds ` \&
89. ds ^ \&
90. ds , \&
91. ds ~ ~
92. ds /
93.\}
94.if t \{\
95. ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u"
96. ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u'
97. ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u'
98. ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u'
99. ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u'
100. ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u'
101.\}
102. \" troff and (daisy-wheel) nroff accents
103.ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V'
104.ds 8 \h'\*(#H'\(*b\h'-\*(#H'
105.ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#]
106.ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H'
107.ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u'
108.ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#]
109.ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#]
110.ds ae a\h'-(\w'a'u*4/10)'e
111.ds Ae A\h'-(\w'A'u*4/10)'E
112. \" corrections for vroff
113.if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u'
114.if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u'
115. \" for low resolution devices (crt and lpr)
116.if \n(.H>23 .if \n(.V>19 \
117\{\
118. ds : e
119. ds 8 ss
120. ds o a
121. ds d- d\h'-1'\(ga
122. ds D- D\h'-1'\(hy
123. ds th \o'bp'
124. ds Th \o'LP'
125. ds ae ae
126. ds Ae AE
127.\}
128.rm #[ #] #H #V #F C
129.\" ========================================================================
130.\"
131.IX Title "utf8 3"
132.TH utf8 3 "2002-06-01" "perl v5.8.0" "Perl Programmers Reference Guide"
133.SH "NAME"
134utf8 \- Perl pragma to enable/disable UTF\-8 (or UTF\-EBCDIC) in source code
135.SH "SYNOPSIS"
136.IX Header "SYNOPSIS"
137.Vb 2
138\& use utf8;
139\& no utf8;
140.Ve
141.SH "DESCRIPTION"
142.IX Header "DESCRIPTION"
143The \f(CW\*(C`use utf8\*(C'\fR pragma tells the Perl parser to allow \s-1UTF\-8\s0 in the
144program text in the current lexical scope (allow UTF-EBCDIC on \s-1EBCDIC\s0 based
145platforms). The \f(CW\*(C`no utf8\*(C'\fR pragma tells Perl to switch back to treating
146the source text as literal bytes in the current lexical scope.
147.PP
148This pragma is primarily a compatibility device. Perl versions
149earlier than 5.6 allowed arbitrary bytes in source code, whereas
150in future we would like to standardize on the \s-1UTF\-8\s0 encoding for
151source text. Until \s-1UTF\-8\s0 becomes the default format for source
152text, this pragma should be used to recognize \s-1UTF\-8\s0 in the source.
153When \s-1UTF\-8\s0 becomes the standard source format, this pragma will
154effectively become a no\-op. For convenience in what follows the
155term \fIUTF-X\fR is used to refer to \s-1UTF\-8\s0 on \s-1ASCII\s0 and \s-1ISO\s0 Latin based
156platforms and UTF-EBCDIC on \s-1EBCDIC\s0 based platforms.
157.PP
158Enabling the \f(CW\*(C`utf8\*(C'\fR pragma has the following effect:
159.IP "\(bu" 4
160Bytes in the source text that have their high-bit set will be treated
161as being part of a literal \s-1UTF\-8\s0 character. This includes most
162literals such as identifier names, string constants, and constant
163regular expression patterns.
164.Sp
165On \s-1EBCDIC\s0 platforms characters in the Latin 1 character set are
166treated as being part of a literal UTF-EBCDIC character.
167.PP
168Note that if you have bytes with the eighth bit on in your script
169(for example embedded Latin\-1 in your string literals), \f(CW\*(C`use utf8\*(C'\fR
170will be unhappy since the bytes are most probably not well-formed
171\&\s-1UTF\-8\s0. If you want to have such bytes and use utf8, you can disable
172utf8 until the end the block (or file, if at top level) by \f(CW\*(C`no utf8;\*(C'\fR.
173.Sh "Utility functions"
174.IX Subsection "Utility functions"
175The following functions are defined in the \f(CW\*(C`utf8::\*(C'\fR package by the perl core.
176.ie n .IP "\(bu $num_octets = utf8::upgrade($string);" 4
177.el .IP "\(bu \f(CW$num_octets\fR = utf8::upgrade($string);" 4
178.IX Item "$num_octets = utf8::upgrade($string);"
179Converts (in\-place) internal representation of string to Perl's internal
180\&\fIUTF-X\fR form. Returns the number of octets necessary to represent
181the string as \fIUTF-X\fR. Can be used to make sure that the
182\&\s-1UTF\-8\s0 flag is on, so that \f(CW\*(C`\ew\*(C'\fR or \f(CW\*(C`lc()\*(C'\fR work as expected on strings
183containing characters in the range 0x80\-0xFF. Note that this should
184not be used to convert
185a legacy byte encoding to Unicode: use Encode for that. Affected
186by the encoding pragma.
187.IP "\(bu utf8::downgrade($string[, \s-1FAIL_OK\s0])" 4
188.IX Item "utf8::downgrade($string[, FAIL_OK])"
189Converts (in\-place) internal representation of string to be un-encoded
190bytes. Returns true on success. On failure dies or, if the value of
191\&\s-1FAIL_OK\s0 is true, returns false. Can be used to make sure that the
192\&\s-1UTF\-8\s0 flag is off, e.g. when you want to make sure that the \fIsubstr()\fR
193or \fIlength()\fR function works with the usually faster byte algorithm.
194Note that this should not be used to convert Unicode back to a legacy
195byte encoding: use Encode for that. \fBNot\fR affected by the encoding
196pragma.
197.IP "\(bu utf8::encode($string)" 4
198.IX Item "utf8::encode($string)"
199Converts (in\-place) \fI$string\fR from logical characters to octet
200sequence representing it in Perl's \fIUTF-X\fR encoding. Same as
201\&\fIEncode::encode_utf8()\fR. Note that this should not be used to convert
202a legacy byte encoding to Unicode: use Encode for that.
203.ie n .IP "\(bu $flag = utf8::decode($string)" 4
204.el .IP "\(bu \f(CW$flag\fR = utf8::decode($string)" 4
205.IX Item "$flag = utf8::decode($string)"
206Attempts to convert \fI$string\fR in-place from Perl's \fIUTF-X\fR encoding
207into logical characters. Same as \fIEncode::decode_utf8()\fR. Note that this
208should not be used to convert Unicode back to a legacy byte encoding:
209use Encode for that.
210.ie n .IP "\(bu $flag = utf8::valid(\s-1STRING\s0)" 4
211.el .IP "\(bu \f(CW$flag\fR = utf8::valid(\s-1STRING\s0)" 4
212.IX Item "$flag = utf8::valid(STRING)"
213[\s-1INTERNAL\s0] Test whether \s-1STRING\s0 is in a consistent state. Will return
214true if string is held as bytes, or is well-formed \s-1UTF\-8\s0 and has the
215\&\s-1UTF\-8\s0 flag on. Main reason for this routine is to allow Perl's
216testsuite to check that operations have left strings in a consistent
217state.
218.PP
219\&\f(CW\*(C`utf8::encode\*(C'\fR is like \f(CW\*(C`utf8::upgrade\*(C'\fR, but the \s-1UTF8\s0 flag is
220cleared. See perlunicode for more on the \s-1UTF8\s0 flag and the C \s-1API\s0
221functions \f(CW\*(C`sv_utf8_upgrade\*(C'\fR, \f(CW\*(C`sv_utf8_downgrade\*(C'\fR, \f(CW\*(C`sv_utf8_encode\*(C'\fR,
222and \f(CW\*(C`sv_utf8_decode\*(C'\fR, which are wrapped by the Perl functions
223\&\f(CW\*(C`utf8::upgrade\*(C'\fR, \f(CW\*(C`utf8::downgrade\*(C'\fR, \f(CW\*(C`utf8::encode\*(C'\fR and
224\&\f(CW\*(C`utf8::decode\*(C'\fR. Note that in the Perl 5.8.0 implementation the
225functions utf8::valid, utf8::encode, utf8::decode, utf8::upgrade,
226and utf8::downgrade are always available, without a \f(CW\*(C`require utf8\*(C'\fR
227statement\*(-- this may change in future releases.
228.SH "BUGS"
229.IX Header "BUGS"
230One can have Unicode in identifier names, but not in package/class or
231subroutine names. While some limited functionality towards this does
232exist as of Perl 5.8.0, that is more accidental than designed; use of
233Unicode for the said purposes is unsupported.
234.PP
235One reason of this unfinishedness is its (currently) inherent
236unportability: since both package names and subroutine names may need
237to be mapped to file and directory names, the Unicode capability of
238the filesystem becomes important\*(-- and there unfortunately aren't
239portable answers.
240.SH "SEE ALSO"
241.IX Header "SEE ALSO"
242perlunicode, bytes