я разобрался как работает модуль. суть его выполнения в создании своих собственных свойств символов.
то есть есть например такой файл: cp1251.pm
# This is auto-generated.  Do not edit by hand!
package Encode::InCharset::cp1251;
our $VERSION = do {my @r = (q$Revision: 0.1 $ =~ /\\d+/g); sprintf "%d."."%02d"x$#r, @r};
sub InCP1251{
   return <<\'END\';
0   7F
A0
A4
A6   A7
A9
AB   AE
B0   B1
B5   B7
BB
401   40C
40E   44F
451   45C
45E   45F
490   491
2013   2014
2018   201A
201C   201E
2020   2022
2026
2030
2039   203A
20AC
2116
2122
END
}
1;
__END__
и загружается он через импорт
package Encode::InCharset;
use 5.007003;
use strict;
use warnings;
our $VERSION = do { my @r = (q$Revision: 0.3 $ =~ /\\d+/g); sprintf "%d."."%02d" x $#r, @r };
our $DEBUG = 1;
use Encode::InCharset::Config;
use Carp;
sub import{
    my $class = shift;
    my $callpkg = caller;
    my @sub = @_ ? @_ : sort keys %Encode::InCharset::Config::InPM;
    for my $sub (@sub){
   no strict \'refs\';
   my $mod = $Encode::InCharset::Config::InPM{$sub} or
       croak "Unknown property: $sub";
   my $modfile = $mod; $modfile =~ s,::,/,go;
   eval { require "$modfile.pm" };
   $@ and croak $@;
   *{"$callpkg\\::$sub"} = \\&{"$mod\\::$sub"};
    }
}
1;
__END__
что то мне подсказывает что под winXP - тестовая ось
eval { require "$modfile.pm" };
# вот эта строчка может и не выполнится
хотя большой вопрос по
вот этой конструкии:
*{"$callpkg\\::$sub"} = \\&{"$mod\\::$sub"};
тоже никонда не встречал и она мне не понятна
вот. Может кто сталкивался или посоветует что нить?