.\" Automatically generated by Pod::Man v1.37, Pod::Parser v1.32 .\" .\" Standard preamble: .\" ======================================================================== .de Sh \" Subsection heading .br .if t .Sp .ne 5 .PP \fB\\$1\fR .PP .. .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. | will give a .\" real vertical bar. \*(C+ will give a nicer C++. Capital omega is used to .\" do unbreakable dashes and therefore won't be available. \*(C` and \*(C' .\" expand to `' in nroff, nothing in troff, for use with C<>. .tr \(*W-|\(bv\*(Tr .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' 'br\} .\" .\" If the F register is turned on, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.Sh), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .if \nF \{\ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . nr % 0 . rr F .\} .\" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .hy 0 .if n .na .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. . \" fudge factors for nroff and troff .if n \{\ . ds #H 0 . ds #V .8m . ds #F .3m . ds #[ \f1 . ds #] \fP .\} .if t \{\ . ds #H ((1u-(\\\\n(.fu%2u))*.13m) . ds #V .6m . ds #F 0 . ds #[ \& . ds #] \& .\} . \" simple accents for nroff and troff .if n \{\ . ds ' \& . ds ` \& . ds ^ \& . ds , \& . ds ~ ~ . ds / .\} .if t \{\ . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' .\} . \" troff and (daisy-wheel) nroff accents .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' .ds 8 \h'\*(#H'\(*b\h'-\*(#H' .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] .ds ae a\h'-(\w'a'u*4/10)'e .ds Ae A\h'-(\w'A'u*4/10)'E . \" corrections for vroff .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' . \" for low resolution devices (crt and lpr) .if \n(.H>23 .if \n(.V>19 \ \{\ . ds : e . ds 8 ss . ds o a . ds d- d\h'-1'\(ga . ds D- D\h'-1'\(hy . ds th \o'bp' . ds Th \o'LP' . ds ae ae . ds Ae AE .\} .rm #[ #] #H #V #F C .\" ======================================================================== .\" .IX Title "Unicode::RecursiveDowngrade 3" .TH Unicode::RecursiveDowngrade 3 "2006-06-25" "perl v5.8.8" "User Contributed Perl Documentation" .SH "NAME" Unicode::RecursiveDowngrade \- Turn off the UTF\-8 flags inside of complex variable .SH "SYNOPSIS" .IX Header "SYNOPSIS" .Vb 1 \& use Unicode::RecursiveDowngrade; .Ve .PP .Vb 10 \& $rd = Unicode::RecursiveDowngrade->new; \& $var = { \& foo => 'bar', \& baz => [ \& 'qux', \& 'quux', \& ], \& corge => \e$grault, \& }; \& $unflagged = $rd->downgrade($var); .Ve .SH "DESCRIPTION" .IX Header "DESCRIPTION" Unicode::RecursiveDowngrade will turn off the \s-1UTF\-8\s0 flag inside of complex variable in a lump. In spite of your intention, some modules turn it on every elements of returned variable. You may be hard up for turn them off if you don't need any \s-1UTF\-8\s0 flags in your variable. This module will fix it up easily. .PP Sometime I think about the \s-1UTF\-8\s0 flag is not stead. But some \f(CW\*(C`XML::Parser\*(C'\fR based modules will turn it on. For example, \f(CW\*(C`XML::Simple\*(C'\fR is really simple way to parse XMLs, but this module returns a simple hashref including flagged values. This hashref is very hard to use, isn't it? .SH "METHODS" .IX Header "METHODS" .IP "* new" 4 .IX Item "new" \&\f(CW\*(C`new()\*(C'\fR is a constructor method. .IP "* filter" 4 .IX Item "filter" You can set some filter to \f(CW\*(C`filter()\*(C'\fR accessor. The values of downgraded will be passed this filter function. You have to set a code reference to this accessor. Like this: .Sp .Vb 2 \& use Unicode::RecursiveDowngrade; \& use Unicode::Japanese; .Ve .Sp .Vb 3 \& $rd = Unicode::RecursiveDowngrade->new; \& $rd->filter(sub { Unicode::Japanese->new(shift, 'utf8')->euc }); \& $unflagged = $rd->downgrade($var); .Ve .Sp the passed subref will be called inside \f(CW\*(C`downgrade()\*(C'\fR method. .IP "* downgrade" 4 .IX Item "downgrade" \&\f(CW\*(C`downgrade()\*(C'\fR returns a turned off variable of argument. .SH "VARIABLES" .IX Header "VARIABLES" .ie n .IP "* $Unicode::RecursiveDowngrade::DowngradeFunc" 4 .el .IP "* \f(CW$Unicode::RecursiveDowngrade::DowngradeFunc\fR" 4 .IX Item "$Unicode::RecursiveDowngrade::DowngradeFunc" This variable has a downgrade function for \f(CW\*(C`downgrade()\*(C'\fR method. You can override the variable for some other way. .SH "AUTHOR" .IX Header "AUTHOR" Koichi Taniguchi .SH "COPYRIGHT" .IX Header "COPYRIGHT" Copyright (c) 2005 Koichi Taniguchi. Japan. All rights reserved. .PP This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself. .SH "SEE ALSO" .IX Header "SEE ALSO" utf8