【Perl】 日本語Podを正しく表示する

投稿日: / 更新日:

ウチの開発環境(CentOS 6.2)で少し前から、perldocコマンドでPodドキュメントを開くと、以下のような警告が良く見られるようになりました。

groffのバージョンが古いため、Wide Characterが正しく表示されない、という旨の警告のようです。ちなみにgroffのバージョンは1.18.1.4です。

まず、そもそもこの環境で日本語のPodを本当に読めないのか、ふと気になったので調べてみました。以下のようなモジュールを書いて検証してみます。

perldocコマンドで表示させると、次のように表示されます。

日本語を含むPodが正しく表示されない様子

日本語を含むPodが正しく表示されない様子

やはり、日本語の部分が表示されていません。

警告に従って、groffの最新版をインストールします。gnuのFTPサイトから最新版(1.21)を入手し、コンパイルしてインストールします。

ちなみに私の環境では、gcc-c++パッケージが不足していたため、途中で別途インストールしました。

インストール後、先ほどのPodが正しく表示されるかどうか確認してみます。

色制御用のエスケープシーケンスが見えてしまっている様子

色制御用のエスケープシーケンスが見えてしまっている様子

表示されることは表示されましたが、今度は制御記号らしきものが一緒に表示されてしまっています。これは端末上の文字に色を付けるためのエスケープシーケンスのようです。なぜこのように表示されるのか原因を調べたところ、私の環境で環境変数PAGERlessと設定していたことが原因のようでした(psqlコマンドにページャを設定するために、このようにしていました)。

回避方法としては、環境変数PAGERを以下のように再設定します。

オプションの-Rは、テキストに上記のエスケープシーケンスが含まれる場合に、文字色を正しく端末上に反映します。

それでは、再度Podを表示してみます。

日本語を含むPodが正しく表示されている様子

日本語を含むPodが正しく表示されている様子

無事、エスケープシーケンスも消え、文字色も含めて正しく表示されるようになりました。

以上、簡単ですが日本語Podの話題をご紹介しました。

Hinemos導入はアトミテックにお任せください

見積もりを依頼する

最新情報発信中

Xやメルマガでも、Hinemosの保守、
開発、導入、構築やカスタマイズ等の
お役立ち情報を発信しています。
是非ご登録ください。