Perl のエラー解決と疑問点整理
忘れた頃にPerlプログラムを作るので、いつも同じところでつまずき、堂々巡りしている気がします。ということで、そのPerlについていつも疑問に思う点について整理してみます。プログラマではないので用語はいい加減です。おかしな勘違いなどもあるかもしれません。
require jcode.pl と cgi-lib.pl って何?
require って何?
require AAAA.pl;
として外部プログラムAAAA.plの便利機能を利用します。
useも似たような機能ですが、読み込み方が違います。
requireは必要になるたびにロードします。
useはその機能を利用しようがしまいが、最初にロードしてしまいます。
ただし、useはPerl 5 以上でしか使えないそうです。
ライブラリとかモジュールって何?
違いはわかりません。
人の作った便利な機能を部品として使っちゃおうってことでいいんじゃないでしょうか。いい加減ですが、そのうちわかったらまた書きます。
jcode.pl について
jcode.pl は日本語の文字コード変換を行ってくれるライブラリです。シフトJIS、JIS、 EUC 間の変換を行います。
require の使い方
本体プログラム冒頭に
require "jcode.pl";
と記述したら、その後は
&jcode'convert(*WORD,'euc')
などとして、jcode.pl のconvert (この場合EUCに変換)を利用できるようになります。
jcode.pl が無い!
Can't locate jcode.pl
Can't locate cgi-lib.pl
などとエラーが出てとまってしまう場合があります。
The cgi-lib.pl Home Page
ftp://ftp.iij.ad.jp/pub/IIJ/dist/utashiro/perl/
からもらってきて同じディレクトリに置きました。
動きました。ありがとうございました。
nkf が無い!
perlではないですが(と思います)、nkf もよく使われる便利ツールのようです。
/usr/local/bin/nkf: No such file or directory
と怒られたらどうしたらいいんでしょう。プログラム中のnkfのその上の行にuuencodeというのがあり、そこでは
/usr/bin/uuencode と書いてあったので、同様に
/user/bin/nkf に修正したらOKでした。
Jcode.pm
未確認情報ですが、jcode.pl の進化形が、Jcode.pm だそうです。
require "jcode.pl"; ----> use Jcode;
jcode:: ----> Jcode::
とすれば使えるとか? jcode.pl を入れて動いてしまったのでJcode.pmについては確かめませんでした。
パソコンの「ソ」が文字化けする
2バイト目が5Cの文字は文字化けするそうです。理由はよくわかりません。
とにかく「ソ」の後に$をつけると直ります。
*********
- Perl 時刻の処理はとりあえずこれで 2008/12
- Internal Server Error でCGIプログラムが動作しない 2008/08
- Perl の基本