| Filename | /usr/share/perl5/MARC/Charset/Code.pm |
| Statements | Executed 20 statements in 791µs |
| Calls | P | F | Exclusive Time |
Inclusive Time |
Subroutine |
|---|---|---|---|---|---|
| 1 | 1 | 1 | 1.02ms | 2.50ms | MARC::Charset::Code::BEGIN@8 |
| 1 | 1 | 1 | 44µs | 60µs | MARC::Charset::Code::BEGIN@4 |
| 1 | 1 | 1 | 17µs | 22µs | MARC::Charset::Code::BEGIN@3 |
| 1 | 1 | 1 | 14µs | 104µs | MARC::Charset::Code::BEGIN@5 |
| 1 | 1 | 1 | 12µs | 46µs | MARC::Charset::Code::BEGIN@7 |
| 1 | 1 | 1 | 11µs | 50µs | MARC::Charset::Code::BEGIN@6 |
| 0 | 0 | 0 | 0s | 0s | MARC::Charset::Code::char_value |
| 0 | 0 | 0 | 0s | 0s | MARC::Charset::Code::charset_name |
| 0 | 0 | 0 | 0s | 0s | MARC::Charset::Code::charset_value |
| 0 | 0 | 0 | 0s | 0s | MARC::Charset::Code::default_charset_group |
| 0 | 0 | 0 | 0s | 0s | MARC::Charset::Code::get_escape |
| 0 | 0 | 0 | 0s | 0s | MARC::Charset::Code::marc8_hash_code |
| 0 | 0 | 0 | 0s | 0s | MARC::Charset::Code::marc_value |
| 0 | 0 | 0 | 0s | 0s | MARC::Charset::Code::to_string |
| 0 | 0 | 0 | 0s | 0s | MARC::Charset::Code::utf8_hash_code |
| Line | State ments |
Time on line |
Calls | Time in subs |
Code |
|---|---|---|---|---|---|
| 1 | package MARC::Charset::Code; | ||||
| 2 | |||||
| 3 | 3 | 29µs | 2 | 26µs | # spent 22µs (17+4) within MARC::Charset::Code::BEGIN@3 which was called:
# once (17µs+4µs) by MARC::Charset::Table::BEGIN@38 at line 3 # spent 22µs making 1 call to MARC::Charset::Code::BEGIN@3
# spent 4µs making 1 call to strict::import |
| 4 | 3 | 69µs | 2 | 76µs | # spent 60µs (44+16) within MARC::Charset::Code::BEGIN@4 which was called:
# once (44µs+16µs) by MARC::Charset::Table::BEGIN@38 at line 4 # spent 60µs making 1 call to MARC::Charset::Code::BEGIN@4
# spent 16µs making 1 call to warnings::import |
| 5 | 3 | 41µs | 2 | 193µs | # spent 104µs (14+90) within MARC::Charset::Code::BEGIN@5 which was called:
# once (14µs+90µs) by MARC::Charset::Table::BEGIN@38 at line 5 # spent 104µs making 1 call to MARC::Charset::Code::BEGIN@5
# spent 90µs making 1 call to base::import |
| 6 | 3 | 32µs | 2 | 89µs | # spent 50µs (11+39) within MARC::Charset::Code::BEGIN@6 which was called:
# once (11µs+39µs) by MARC::Charset::Table::BEGIN@38 at line 6 # spent 50µs making 1 call to MARC::Charset::Code::BEGIN@6
# spent 39µs making 1 call to Exporter::import |
| 7 | 3 | 33µs | 2 | 80µs | # spent 46µs (12+34) within MARC::Charset::Code::BEGIN@7 which was called:
# once (12µs+34µs) by MARC::Charset::Table::BEGIN@38 at line 7 # spent 46µs making 1 call to MARC::Charset::Code::BEGIN@7
# spent 34µs making 1 call to Exporter::import |
| 8 | 3 | 573µs | 2 | 2.84ms | # spent 2.50ms (1.02+1.48) within MARC::Charset::Code::BEGIN@8 which was called:
# once (1.02ms+1.48ms) by MARC::Charset::Table::BEGIN@38 at line 8 # spent 2.50ms making 1 call to MARC::Charset::Code::BEGIN@8
# spent 342µs making 1 call to Exporter::import |
| 9 | |||||
| 10 | 1 | 11µs | 1 | 295µs | MARC::Charset::Code # spent 295µs making 1 call to Class::Accessor::mk_accessors |
| 11 | ->mk_accessors(qw(marc ucs name charset is_combining alt)); | ||||
| 12 | |||||
| 13 | =head1 NAME | ||||
| 14 | |||||
| - - | |||||
| 61 | sub char_value() | ||||
| 62 | { | ||||
| 63 | return chr(hex(shift->ucs())); | ||||
| 64 | } | ||||
| 65 | |||||
| 66 | =head2 marc_value() | ||||
| 67 | |||||
| - - | |||||
| 72 | sub marc_value | ||||
| 73 | { | ||||
| 74 | my $code = shift; | ||||
| 75 | my $marc = $code->marc(); | ||||
| 76 | return chr(hex($marc)) unless $code->charset_name eq 'CJK'; | ||||
| 77 | return | ||||
| 78 | chr(hex(substr($marc,0,2))) . | ||||
| 79 | chr(hex(substr($marc,2,2))) . | ||||
| 80 | chr(hex(substr($marc,4,2))); | ||||
| 81 | } | ||||
| 82 | |||||
| 83 | |||||
| 84 | =head2 charset_name() | ||||
| 85 | |||||
| - - | |||||
| 90 | sub charset_name() | ||||
| 91 | { | ||||
| 92 | return MARC::Charset::Constants::charset_name(shift->charset_value()); | ||||
| 93 | } | ||||
| 94 | |||||
| 95 | =head2 to_string() | ||||
| 96 | |||||
| - - | |||||
| 101 | sub to_string | ||||
| 102 | { | ||||
| 103 | my $self = shift; | ||||
| 104 | my $str = | ||||
| 105 | $self->name() . ': ' . | ||||
| 106 | 'charset_code=' . $self->charset() . ' ' . | ||||
| 107 | 'marc=' . $self->marc() . ' ' . | ||||
| 108 | 'ucs=' . $self->ucs() . ' '; | ||||
| 109 | |||||
| 110 | $str .= ' combining' if $self->is_combining(); | ||||
| 111 | return $str; | ||||
| 112 | } | ||||
| 113 | |||||
| 114 | |||||
| 115 | =head2 marc8_hash_code() | ||||
| 116 | |||||
| - - | |||||
| 123 | sub marc8_hash_code | ||||
| 124 | { | ||||
| 125 | my $self = shift; | ||||
| 126 | return sprintf('%s:%s', $self->charset_value(), $self->marc_value()); | ||||
| 127 | } | ||||
| 128 | |||||
| 129 | |||||
| 130 | =head2 utf8_hash_code() | ||||
| 131 | |||||
| - - | |||||
| 136 | sub utf8_hash_code | ||||
| 137 | { | ||||
| 138 | return int(hex(shift->ucs())); | ||||
| 139 | } | ||||
| 140 | |||||
| 141 | |||||
| 142 | =head2 default_charset_group | ||||
| 143 | |||||
| - - | |||||
| 149 | sub default_charset_group | ||||
| 150 | { | ||||
| 151 | my $charset = shift->charset_value(); | ||||
| 152 | |||||
| 153 | return 'G0' | ||||
| 154 | if $charset eq ASCII_DEFAULT | ||||
| 155 | or $charset eq GREEK_SYMBOLS | ||||
| 156 | or $charset eq SUBSCRIPTS | ||||
| 157 | or $charset eq SUPERSCRIPTS | ||||
| 158 | or $charset eq BASIC_LATIN | ||||
| 159 | or $charset eq BASIC_ARABIC | ||||
| 160 | or $charset eq BASIC_CYRILLIC | ||||
| 161 | or $charset eq BASIC_GREEK | ||||
| 162 | or $charset eq BASIC_HEBREW | ||||
| 163 | or $charset eq CJK; | ||||
| 164 | |||||
| 165 | return 'G1'; | ||||
| 166 | } | ||||
| 167 | |||||
| 168 | |||||
| 169 | =head2 get_marc8_escape | ||||
| 170 | |||||
| - - | |||||
| 176 | sub get_escape | ||||
| 177 | { | ||||
| 178 | my $charset = shift->charset_value(); | ||||
| 179 | |||||
| 180 | return ESCAPE . $charset | ||||
| 181 | if $charset eq ASCII_DEFAULT | ||||
| 182 | or $charset eq GREEK_SYMBOLS | ||||
| 183 | or $charset eq SUBSCRIPTS | ||||
| 184 | or $charset eq SUPERSCRIPTS; | ||||
| 185 | |||||
| 186 | return ESCAPE . SINGLE_G0_A . $charset | ||||
| 187 | if $charset eq ASCII_DEFAULT | ||||
| 188 | or $charset eq BASIC_LATIN | ||||
| 189 | or $charset eq BASIC_ARABIC | ||||
| 190 | or $charset eq BASIC_CYRILLIC | ||||
| 191 | or $charset eq BASIC_GREEK | ||||
| 192 | or $charset eq BASIC_HEBREW; | ||||
| 193 | |||||
| 194 | return ESCAPE . SINGLE_G1_A . $charset | ||||
| 195 | if $charset eq EXTENDED_ARABIC | ||||
| 196 | or $charset eq EXTENDED_LATIN | ||||
| 197 | or $charset eq EXTENDED_CYRILLIC; | ||||
| 198 | |||||
| 199 | return ESCAPE . MULTI_G0_A . CJK | ||||
| 200 | if $charset eq CJK; | ||||
| 201 | } | ||||
| 202 | |||||
| 203 | =head2 charset_value | ||||
| 204 | |||||
| - - | |||||
| 209 | sub charset_value | ||||
| 210 | { | ||||
| 211 | return chr(hex(shift->charset())); | ||||
| 212 | } | ||||
| 213 | |||||
| - - | |||||
| 216 | 1 | 4µs | 1; |