Linux and UNIX Man Pages

Linux & Unix Commands - Search Man Pages

cz::cstocs(3pm) [debian man page]

Cz::Cstocs(3pm) 					User Contributed Perl Documentation					   Cz::Cstocs(3pm)

NAME
Cz::Cstocs - conversions of charset encodings for the Czech language SYNOPSIS
use Cz::Cstocs; my $il2_to_ascii = new Cz::Cstocs 'il2', 'ascii'; while (<>) { print &$il2_to_ascii($_); } use Cz::Cstocs 'il2_ascii'; while (<>) { print il2_ascii($_); } use Cz::Cstocs; sub il2toascii; # inform the parser that there is a function il2toascii *il2toascii = new Cz::Cstocs 'il2', 'ascii'; # now define the function print il2toascii $data; # thanks to Jan Krynicky for poining this out DESCRIPTION
This module helps in converting texts between various charset encodings, used for Czech and Slovak languages. The instance of the object Cz::Cstocs is created using method new. It takes at least two parameters for input and output encoding and can be afterwards used as a function reference to convert strings/lists. Cz::Cstocs supports fairly free form of aliases, so iso8859-2, ISO-8859-2, iso88592 and il2 are all aliases of the same encoding. For backward compatibility, method conv is supported as well, so the example above could also read while (<>) { print $il2_to_ascii->conv($_); } You can also use typeglob syntax. The conversion function takes a list and returns list of converted strings (in the list context) or one string consisting of concatenated results (in the scalar context). You can modify the behaviour of the conversion function by specifying hash of other options after the encoding names in call to new. fillstring Gives alternate string that will replace characters from input encoding that are not present in the output encoding. Default is space. use_accent Defines whether the accent file should be used. Default is 1 (true). nofillstring When 1 (true), will keep characters that do not have friends in accent nor output encoding, will no replace them with fillstring. Default is 0 except for tex, because you probably rather want to keep backslashed symbols than loose them. cstocsdir Alternate location for encoding and accent files. The default is the Cz/Cstocs/enc directory in Perl library tree. This location can also be changed with the CSTOCSDIR environment variable. There is an alternate way to define the conversion function: any arguments after use Cz::Cstocs that have form encoding_encoding or encoding_to_encoding are processed and the appropriate functions are imported. So, use Cz::Cstocs qw(pc2_to_il2 il2_ascii); define two functions, that are loaded into caller's namespace and can be used directly. In this case, you cannot specify additional options, you only have default behaviour. ERROR HANDLING
If you request an unknown encoding in the call to new Cz::Cstocs, the conversion object is not defined and the variable $Cz::Cstocs::errstr is set to the error message. When you specify unknown encoding in the use call style (like "use Cz::Cstocs 'il2_ascii';"), the die is called. AUTHOR
Jan Pazdziora, adelton@fi.muni.cz, created the module version. Jan "Yenya" Kasprzak has done the original Un*x implementation. VERSION
3.4 SEE ALSO
cstocs(1), perl(1), or Xcstocs at http://www.lut.fi/~kurz/programs/xcstocs.tar.gz. perl v5.10.1 2002-10-17 Cz::Cstocs(3pm)

Check Out this Related Man Page

Encode::Encoder(3pm)					 Perl Programmers Reference Guide				      Encode::Encoder(3pm)

NAME
Encode::Encoder -- Object Oriented Encoder SYNOPSIS
use Encode::Encoder; # Encode::encode("ISO-8859-1", $data); Encode::Encoder->new($data)->iso_8859_1; # OOP way # shortcut use Encode::Encoder qw(encoder); encoder($data)->iso_8859_1; # you can stack them! encoder($data)->iso_8859_1->base64; # provided base64() is defined # you can use it as a decoder as well encoder($base64)->bytes('base64')->latin1; # stringified print encoder($data)->utf8->latin1; # prints the string in latin1 # numified encoder("x{abcd}x{ef}g")->utf8 == 6; # true. bytes::length($data) ABSTRACT
Encode::Encoder allows you to use Encode in an object-oriented style. This is not only more intuitive than a functional approach, but also handier when you want to stack encodings. Suppose you want your UTF-8 string converted to Latin1 then Base64: you can simply say my $base64 = encoder($utf8)->latin1->base64; instead of my $latin1 = encode("latin1", $utf8); my $base64 = encode_base64($utf8); or the lazier and more convoluted my $base64 = encode_base64(encode("latin1", $utf8)); Description Here is how to use this module. o There are at least two instance variables stored in a hash reference, {data} and {encoding}. o When there is no method, it takes the method name as the name of the encoding and encodes the instance data with encoding. If successful, the instance encoding is set accordingly. o You can retrieve the result via ->data but usually you don't have to because the stringify operator ("") is overridden to do exactly that. Predefined Methods This module predefines the methods below: $e = Encode::Encoder->new([$data, $encoding]); returns an encoder object. Its data is initialized with $data if present, and its encoding is set to $encoding if present. When $encoding is omitted, it defaults to utf8 if $data is already in utf8 or "" (empty string) otherwise. encoder() is an alias of Encode::Encoder->new(). This one is exported on demand. $e->data([$data]) When $data is present, sets the instance data to $data and returns the object itself. Otherwise, the current instance data is returned. $e->encoding([$encoding]) When $encoding is present, sets the instance encoding to $encoding and returns the object itself. Otherwise, the current instance encoding is returned. $e->bytes([$encoding]) decodes instance data from $encoding, or the instance encoding if omitted. If the conversion is successful, the instance encoding will be set to "". The name bytes was deliberately picked to avoid namespace tainting -- this module may be used as a base class so method names that appear in Encode::Encoding are avoided. Example: base64 transcoder This module is designed to work with Encode::Encoding. To make the Base64 transcoder example above really work, you could write a module like this: package Encode::Base64; use base 'Encode::Encoding'; __PACKAGE__->Define('base64'); use MIME::Base64; sub encode{ my ($obj, $data) = @_; return encode_base64($data); } sub decode{ my ($obj, $data) = @_; return decode_base64($data); } 1; __END__ And your caller module would be something like this: use Encode::Encoder; use Encode::Base64; # now you can really do the following encoder($data)->iso_8859_1->base64; encoder($base64)->bytes('base64')->latin1; Operator Overloading This module overloads two operators, stringify ("") and numify (0+). Stringify dumps the data inside the object. Numify returns the number of bytes in the instance data. They come in handy when you want to print or find the size of data. SEE ALSO
Encode, Encode::Encoding perl v5.16.2 2012-10-25 Encode::Encoder(3pm)
Man Page