/usr/share/perl5/Juman/Encode.pm is in libjuman-perl 7.0-3.4.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 | # $Id: Encode.pm,v 1.2 2011/07/01 04:02:15 kawahara Exp $
package Juman::Encode;
require 5.008;
use strict;
use base qw/ Exporter /;
our @EXPORT_OK = qw/ encode decode set_encoding /;
=head1 NAME
Juman::Encode - character encoding functions
=head1 DESCRIPTION
Perl-5.8.x は内部文字コードとして Unicode を採用している.そのため,日
本語 EUC を使っているプロセスとの入出力を行う場合や,日本語 EUC で記述
されたデータを参照する場合には,常に明示的に encode/decode を行う必要
がある.
このライブラリでは,そのための関数を定義している.
=head1 FUNCTIONS
=over 4
=item $octets = encode ( $string )
文字列を,C<encoding> プラグマで指定されている文字コードで encode して,
バイト列を得る.
=cut
sub encode {
my( $string ) = @_;
if( $string and ${^ENCODING} ){
${^ENCODING}->encode( $string );
} else {
$string;
}
}
=item $string = decode ( $octets )
バイト列を,C<encoding> プラグマで指定されている文字コードで decode し
て,文字列を得る.
=cut
sub decode {
my( $string ) = @_;
if( $string and ${^ENCODING} ){
${^ENCODING}->decode( $string );
} else {
$string;
}
}
=item set_encoding ( $handle )
指定されたファイルハンドルとの通信に,C<encoding> プラグマで指定されて
いる文字コードを使うように設定する.
=cut
sub set_encoding {
my( $fh ) = @_;
if( ${^ENCODING} ){
my $name = ${^ENCODING}->name();
binmode( $fh, ":encoding($name)" );
}
}
1;
=back
いずれの関数も,C<encoding> プラグマが指定されていない場合には,何もし
ない.
=head1 MEMO
このライブラリは,変数 C<${^ENCODING}> を参照する必要のある関数の定義
を,一ヶ所にまとめるために導入した.なぜならば,変数 C<${^ENCODING}>
を参照しようとするコードは,Jperl-5.005 では syntax error となるためで
ある.
Sample Script:
use English qw/ $PERL_VERSION /;
if( $PERL_VERSION > 5.008 ){
${^ENCODING}->encode( ... );
}
Error Message:
syntax error at sample.perl line 3, near "{^"
=head1 SEE ALSO
=over 4
=item *
L<encoding>
=item *
L<Encode>
=back
=head1 AUTHOR
=over 4
=item
土屋 雅稔 <tsuchiya@pine.kuee.kyoto-u.ac.jp>
=cut
__END__
# Local Variables:
# mode: perl
# use-kuten-for-period: nil
# use-touten-for-comma: nil
# End:
|