|  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;  |