DBM_Filter with encode() on EBCDIC fails

[email protected] (Sastry)
Newsgroups perl.unicode,perl.mvs,perl.perl5.porters
Message-ID <[email protected]>
Hi
 I am using perl-5.8.6 on EBCDIC platform and I encounter a test 
case(lib/DBM_Filter/t/encode.t) failing
 The VerifyData sub routine expects the key as 'euro' where as on EBCDIC, I 
get the key as '/Ä>,'
can you explain me why this is happening?
 

use strict;
use warnings;
use Carp;
BEGIN 
{

eval { require Encode; };
if ($@) {
print "1..0 # Skip: Encode is not available\n";
exit 0;
}
}


require "dbm_filter_util.pl";
# use charnames qw{greek};
use Test::More tests => 26;

BEGIN { use_ok('DBM_Filter') };
BEGIN { use_ok('SDBM_File') };
BEGIN { use_ok('Fcntl') };

unlink <Op_dbmx*>;
END { unlink <Op_dbmx*>; }

my %h1 = () ;
my $db1 = tie(%h1, 'SDBM_File','Op_dbmx', O_RDWR|O_CREAT, 0640) ;

eval { $db1->Filter_Push('encode' => 'iso-8859-16') };
is $@, '', "push an 'encode' filter (specify iso-8859-16)" ;
use charnames qw{:full};
StoreData(\%h1,
{ 
'euro' => "\N{EURO SIGN}", 
});


undef $db1;
{
use warnings FATAL => 'untie';
eval { untie %h1 };
is $@, '', "untie without inner references" ;
}

# read the dbm file without the filter
my %h2 = () ;
my $db2 = tie(%h2, 'SDBM_File','Op_dbmx', O_RDWR|O_CREAT, 0640) ;

ok $db2, "tied to SDBM_File";

VerifyData(\%h2,
{
'euro' => "\xA4", 
});

undef $db2;
{
use warnings FATAL => 'untie';
eval { untie %h2 };
is $@, '', "untie without inner references" ;
}
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.