я разобрался как работает модуль. суть его выполнения в создании своих собственных свойств символов.
то есть есть например такой файл: 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"};
тоже никонда не встречал и она мне не понятна
вот. Может кто сталкивался или посоветует что нить?