プロが教えるわが家の防犯対策術!

perlスクリプトのUsageをPod::Usageを使用して記述したいと考えてます。
その際に、Pod::Usageの中で日本語を使用したいのですが、
うまくできません。
Encode.pmは利用できる環境なのですが、どう記述すればよいのか具体的にわからず困っております。
下記のスクリプトだと、「-man」の時に日本語が表示されず文字化けしてしまいます。
恐れ入りますが、ご教授お願いします。

======================
use Getopt::Long ;
use Pod::Usage ;

my $man=0;
my $help=0;

GetOptions('help|?' => \$help, man => \$man) or pod2usage(2);
pod2usage(1) if $help ;
pod2usage(-exitstatus=>0, -verbose=>2) if $man ;
__END__
=head1 NAME
以下省略

A 回答 (1件)

お使いの環境をお書きになってないのでわかりませんが……



※ Linux だと仮定します、的外れでしたらご容赦ください。

>「-man」の時に日本語が表示されず文字化けしてしまいます。

__END__ のすぐ下に =encoding などで文字コードを指定するとどうなりますか?

また

そのスクリプトを less で表示すると化けますか?
環境変数 LANG はどうなっていますか?

# たぶんスクリプト内の日本語のエンコードと環境変数のエンコードとが異なっていると
# 化けるのではないかと思われますが……
    • good
    • 0
この回答へのお礼

ご指摘のとおり、LANG設定を変更したら解決いたしました。
※環境はLinuxでした、説明不足で申し訳ありませんでした。

ちなみに、
$ENV{ LANG } = "ja_JP.eucJP" ;
$ENV{ JLESSCHARSET } = "japanese" ;
とスクリプト内で設定するだけで解決できました。

ありがとうございました。

お礼日時:2008/04/09 20:05

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!