line |
stmt |
bran |
cond |
sub |
pod |
time |
code |
1
|
|
|
|
|
|
|
package Data::Petitcom::CharTBL; |
2
|
|
|
|
|
|
|
|
3
|
4
|
|
|
4
|
|
25
|
use strict; |
|
4
|
|
|
|
|
24
|
|
|
4
|
|
|
|
|
136
|
|
4
|
4
|
|
|
4
|
|
23
|
use warnings; |
|
4
|
|
|
|
|
8
|
|
|
4
|
|
|
|
|
115
|
|
5
|
4
|
|
|
4
|
|
2161
|
use utf8; |
|
4
|
|
|
|
|
24
|
|
|
4
|
|
|
|
|
27
|
|
6
|
|
|
|
|
|
|
|
7
|
4
|
|
|
4
|
|
134
|
use parent qw { Exporter }; |
|
4
|
|
|
|
|
8
|
|
|
4
|
|
|
|
|
31
|
|
8
|
|
|
|
|
|
|
our @EXPORT = qw{}; |
9
|
|
|
|
|
|
|
our @EXPORT_OK = qw{ load_char dump_char }; |
10
|
|
|
|
|
|
|
|
11
|
4
|
|
|
|
|
570
|
use constant GRAPHIC_CHAR => [ |
12
|
|
|
|
|
|
|
[ 0, " " ], [ 1, "А" ], [ 2, "Б" ], [ 3, "В" ], [ 4, "Г" ], [ 5, "Д" ], [ 6, "Е" ], [ 7, "Ё" ], |
13
|
|
|
|
|
|
|
[ 8, "Ж" ], [ 9, "З" ], [ 10, "И" ], [ 11, "Й" ], [ 12, "К" ], [ 13, "\n" ], [ 14, "М" ], [ 15, "Н" ], |
14
|
|
|
|
|
|
|
[ 16, "♪" ], [ 17, "О" ], [ 18, "н" ], [ 19, "П" ], [ 20, "Р" ], [ 21, "С" ], [ 22, "Т" ], [ 23, "У" ], |
15
|
|
|
|
|
|
|
[ 24, "Ф" ], [ 25, "Х" ], [ 26, "◎" ], [ 27, "Ц" ], [ 28, "→" ], [ 29, "←" ], [ 30, "↑" ], [ 31, "↓" ], |
16
|
|
|
|
|
|
|
[ 128, "◇" ], [ 129, "━" ], [ 130, "┃" ], [ 131, "┏" ], [ 132, "┓" ], [ 133, "┛" ], [ 134, "┗" ], [ 135, "┣" ], |
17
|
|
|
|
|
|
|
[ 136, "┳" ], [ 137, "┫" ], [ 138, "┻" ], [ 139, "╋" ], [ 140, "┠" ], [ 141, "┯" ], [ 142, "┨" ], [ 143, "┷" ], |
18
|
|
|
|
|
|
|
[ 144, "┴" ], [ 145, "┬" ], [ 146, "├" ], [ 147, "┼" ], [ 148, "┤" ], [ 149, "─" ], [ 150, "│" ], [ 151, "┿" ], |
19
|
|
|
|
|
|
|
[ 152, "┌" ], [ 153, "┐" ], [ 154, "└" ], [ 155, "┘" ], [ 156, "┝" ], [ 157, "┰" ], [ 158, "┥" ], [ 159, "┸" ], |
20
|
|
|
|
|
|
|
[ 224, "■" ], [ 225, "●" ], [ 226, "▲" ], [ 227, "▼" ], [ 228, "□" ], [ 229, "○" ], [ 230, "△" ], [ 231, "▽" ], |
21
|
|
|
|
|
|
|
[ 232, "Ч" ], [ 233, "Ш" ], [ 234, "Щ" ], [ 235, "Ъ" ], [ 236, "Ы" ], [ 237, "Ь" ], [ 238, "Э" ], [ 239, "Ю" ], |
22
|
|
|
|
|
|
|
[ 240, "Я" ], [ 241, "а" ], [ 242, "б" ], [ 243, "в" ], [ 244, "г" ], [ 245, "д" ], [ 246, "е" ], [ 247, "ё" ], |
23
|
|
|
|
|
|
|
[ 248, "ж" ], [ 249, "з" ], [ 250, "и" ], [ 251, "й" ], [ 252, "к" ], [ 253, "л" ], [ 254, "м" ], [ 255, "╂" ] |
24
|
4
|
|
|
4
|
|
3301
|
]; |
|
4
|
|
|
|
|
9
|
|
25
|
|
|
|
|
|
|
|
26
|
4
|
|
|
4
|
|
22
|
use Encode; |
|
4
|
|
|
|
|
11
|
|
|
4
|
|
|
|
|
1239
|
|
27
|
|
|
|
|
|
|
my $enc = Encode::find_encoding('cp932'); |
28
|
|
|
|
|
|
|
|
29
|
|
|
|
|
|
|
sub load_char { |
30
|
40
|
|
|
40
|
0
|
53
|
my $byte = shift; |
31
|
40
|
|
|
|
|
245
|
my $dec_code = unpack "C", $byte; |
32
|
40
|
|
|
|
|
52
|
for my $tpl ( @{ GRAPHIC_CHAR() } ) { |
|
40
|
|
|
|
|
74
|
|
33
|
3676
|
100
|
|
|
|
21283
|
return $tpl->[1] if ( $tpl->[0] == $dec_code ); |
34
|
|
|
|
|
|
|
} |
35
|
38
|
|
|
|
|
437
|
return $enc->decode($byte); |
36
|
|
|
|
|
|
|
} |
37
|
|
|
|
|
|
|
|
38
|
|
|
|
|
|
|
sub dump_char { |
39
|
40
|
|
|
40
|
0
|
200
|
my $char = shift; |
40
|
40
|
|
|
|
|
47
|
for my $tpl ( @{ GRAPHIC_CHAR() } ) { |
|
40
|
|
|
|
|
231
|
|
41
|
3840
|
50
|
|
|
|
11729
|
return pack( "C*", $tpl->[0] ) if ( $char eq $tpl->[1] ); |
42
|
|
|
|
|
|
|
} |
43
|
40
|
|
|
|
|
222
|
return $enc->encode($char); |
44
|
|
|
|
|
|
|
} |
45
|
|
|
|
|
|
|
|
46
|
|
|
|
|
|
|
1; |