| perl documentation | Contained in the perl distribution. |
DBM_Filter::encode - filter for DBM_Filter
use SDBM_File; # or DB_File, or GDBM_File, or NDBM_File, or ODBM_File
use DBM_Filter ;
$db = tie %hash, ...
$db->Filter_Push('encode' => 'iso-8859-16');
This DBM filter allows you to choose the character encoding will be store in the DBM file. The usage is
$db->Filter_Push('encode' => ENCODING);
where "ENCODING" must be a valid encoding name that the Encode module recognises.
A fatal error will be thrown if:
The Encode module is not available.
The encoding requested is not supported by the Encode module.
DBM_Filter, perldbmfilter, Encode
Paul Marquess pmqs@cpan.org
| perl documentation | Contained in the perl distribution. |
package DBM_Filter::encode ; use strict; use warnings; use Carp; our $VERSION = '0.02'; BEGIN { eval { require Encode; }; croak "Encode module not found.\n" if $@; } sub Filter { my $encoding_name = shift || "utf8"; my $encoding = Encode::find_encoding($encoding_name) ; croak "Encoding '$encoding_name' is not available" unless $encoding; return { Store => sub { $_ = $encoding->encode($_) if defined $_ ; }, Fetch => sub { $_ = $encoding->decode($_) if defined $_ ; } } ; } 1; __END__