use strict; use warnings; use MLDBM qw(DB_File Storable); use Devel::Peek; use Encode; use FreezeThaw; no warnings 'utf8'; $| = 1; tie my %data, 'MLDBM', 'testmldbm' or die $!; my $string = "a string with a wide character: \x{0100}"; Dump($string); #my $fstring = FreezeThaw::freeze($string); $data{string} = $string; print "$data{string}\n"; #### SV = PV(0x9766470) at 0x964eae8 REFCNT = 1 FLAGS = (PADMY,POK,pPOK,UTF8) PV = 0x97a5190 "a string with a wide character: \304\200"\0 [UTF8 "a string with a wide character: \x{100}"] CUR = 34 LEN = 36 a string with a wide character: Ā #### use strict; use warnings; use MLDBM qw(DB_File FreezeThaw); use Devel::Peek; use Encode; use FreezeThaw; no warnings 'utf8'; use Data::Dumper; use DBM_Filter; $| = 1; my $db = tie my %data, 'MLDBM', 'testmldbm' or die $!; print Dumper($db->{DB}); $db->{DB}->Filter_Push('utf8'); if($db->{DB}->can('Filter_Push')) { print "can Filter_Push\n"; } my $string = "a string with a wide character: \x{0100}"; Dump($string); $data{string} = $string; print "$data{string}\n";