#!/usr/bin/perl -w use strict; use warnings; use BerkeleyDB; use Encode; use utf8; my %file_mend = (); system("rm -f mend.db"); tie %file_mend, 'BerkeleyDB::Hash', -Filename => "mend.db", -Flags => DB_CREATE or die "Cannot create file mend.db: $! $BerkeleyDB::Error\n"; open(IN,"../morph-ends.dict") or die("cant"); while() { my $s = du($_); if ( $s =~ m/MORPH-END-(.+?)\.(.+?):\s+\[\];/ ) { my $end = $1; my $latru = $2; my $morph = $3; #print eu("$end\t$latru\t$morph\n"); $file_mend{ek($end)} .= ek(":".$morph); } else { print "bad-bad\n"; } } close(IN); untie %file_mend; sub eu { return encode("utf-8",shift); } sub du { return decode("utf-8",shift); } sub ek { return encode("koi8-r",shift); } sub dk { return decode("koi8-r",shift); }