このページは福井県立大学の田中求之が2006年1月まで運用していた Mac のサーバ運用に関する会議室 「Web Scripter's Meeting」の記録です。情報が古くなっている可能性がありますのでご注意ください。

MacPerl5.1.5でjcode.plのエラー

発言者:武藤
( Date Friday, December 05, 1997 11:18:07 )


レスキューさんとか、WEB忍法とかの伝言板Perlスクリプトを走らせると
MacPerl5.1.5でjcode.plのエラーがでるのですがなぜでしょうか?

# Odd number of elements in hash list.
File 'MacintoshHD:usr:local:bin:perl:lib:jcode.pl'; Line 230

となります。
MacPerl5.0.7のバージョンでは出てこないのですが
どこか設定がおかしいのでしょうか。

武藤 さんからのコメント
( Friday, December 05, 1997 12:13:02 )

jcode.pl v2.0
# Odd number of elements in hash list.
File 'MacintoshHD:usr:local:bin:perl:lib:jcode.pl'; Line 230

jcode.pl v2.3
# Odd number of elements in hash list.
File 'MacintoshHD:usr:local:bin:perl:lib:jcode.pl'; Line 238

バージョンを変えて見てら別のところで
引っかかりました。
どうすればよいのでしょうか?

よしもと さんからのコメント
( Friday, December 05, 1997 12:34:30 )

今試しにMacPerl 5.1.5r4 + jcode.pl-2.3で以下のようなスクリプト
を走らせましたが、特に問題はなかったですよ。

require 'jcode.pl';

while (<>) {
    $code = &jcode::convert(*_, 'jis');
    print $code, "\t", $_;
}

武藤さんがお使いの伝言板スクリプトではどのようにjcode.plを使われて
いますか?

武藤 さんからのコメント
( Friday, December 05, 1997 13:53:17 )

[Web裏技]などの伝言板のスクリプトをそのまま使用しています。
特に変えているところはありません。

ダウンロードのミスでしょうか?

→  w2.amn.co.jp/minibbs.cgi.txt

よしもと さんからのコメント
( Friday, December 05, 1997 14:08:28 )

1つ質問ですが、jcode.plのありかなんですけど、

MacintoshHD:usr:local:bin:perl:lib:jcode.pl

なんて所に入っているんですか?

武藤 さんからのコメント
( Friday, December 05, 1997 14:14:49 )

アップルスクリプトは参考書が少ないので断念し、
Perlをお勉強してサーバー構築をしようと思っています。
手始めに、他人様のスクリプトを動作させ、
Perlを覚えようかと思ったのですが、
MacPerl5.1.5のjcode.plのエラーでつまずいています。
5.0.7では問題なく走るのですけど、スクリプト上のスペースや文字データで
引っかかりやすいので手直しが大変です。
5.1.5にしたらスペースや文字で引っかかることは少なくなったのですが、
jcode.plのエラーが出てしまいました。

、、、、という経過をたどっています。


武藤 さんからのコメント
( Friday, December 05, 1997 14:17:43 )

>MacintoshHD:usr:local:bin:perl:lib:jcode.pl
おかしいですか?
(5.07で)最初どうしても動かなかったのでこうしたら動いてくれました。

武藤 さんからのコメント
( Friday, December 05, 1997 14:23:43 )

はじめPerlのパスの意味がわからなくて、、、、
(#!/usr/local/bin/perl ←これ)
この通りフォルダをつくってPerlを入れた。

武藤 さんからのコメント
( Friday, December 05, 1997 14:36:52 )

サーチエンジンもテスト用に入れてあるのですが、
5.1.5バージョンで同じエラーがでます。
サンプルは5.0.7バージョンで動いてます。

→  http://w2.amn.co.jp/search/index.html

武藤 さんからのコメント
( Friday, December 05, 1997 19:15:14 )

よしもとさん、おさわがせしました。
jcode.plをCGIと同じ階層に入れ、パスを

require 'jcode.pl';

としたら、エラーがでなくなりました。
MacPerlのプレファレンスのLibraries設定は、空白のままでいいのでしょうか?
v5.0.7でaddPath設定が変にしてあったようです。
(導入当時あてずっぽうに設定したのがまずかったようです)

よしもと さんからのコメント
( Friday, December 05, 1997 19:30:02 )

空白はまずいですね。
MacPerlをインストールした時に、MacPerl本体と同じ階層にある
libというフォルダを設定してください。というか、デフォルトでは
このように設定されていますよね。で、何かモジュールを追加する
場合は、このフォルダーの中に入れて使えばよいわけです。

武藤くん さんからのコメント
( Saturday, December 06, 1997 21:23:54 )

よしもとさん、色々とありがとうございました。
code.plをダウンロードするとき、ブラウザのスクリプトを
コピーしたのがまずかったようです。
ブラウザで文書のソースを保存したものを使ったらエラーがでませんでした。

でも、絶対パスでもlibは通るんではないですか?
その辺が何回やってもわからないのですが?
今日一日中やってて、頭がもやもやしてきましたです。

今後もよしもとさんのHPでお世話になりそうです。(_._;

よしもと さんからのコメント
( Saturday, December 06, 1997 22:09:36 )

そりゃぁ絶対パスを書いてもよいんだけど、美しくないよなぁ。
せっかくデフォルトで@INCを設定してくれているんだから、無理
に変える必要ないと思うけど (^^;

それから、requireを使う場合は良いですが、useを使う場合は絶対
パスを指定するだけでは駄目なんで、その辺は注意する必要があります。

usui , seiichi さんからのコメント
( Monday, December 08, 1997 00:12:23 )

久しぶりに入れ換えてみました。ちょっと見、以前不満に思っていた箇所
が改善されていて好感がもてました。標準でついてくるモジュールも増え
たみたいですね。

ところで、以前のバージョンのMacPerlでJeditを使用すると指定して、
そのままにしておいたのですが、このバージョンのMacPerlでその設定を
かえるのはどこでするのでしょうか?

全く関係ない話なのですが、
MacPerl使いの方、御存知でしたらお教えください。

武藤くん さんからのコメント
( Monday, December 08, 1997 17:38:40 )

use、Jeditってなに、何、ナニ?
誰かPerlの良い参考書あったら教えてくださいませ(もちろん日本語)
MACの雑誌しかみてないもんでさっぱりわかりません。
それに、田舎じゃ専門書はほとんどないに等しい。
書名がわかれば書店で注文できるかもしんない。


西田明美 さんからのコメント
( Tuesday, December 09, 1997 15:13:34 )

Perlユーザの必携書と言っても過言ではない「Perlプログラミング」
(通称 ラクダ本)がやはりベストではないでしょうか。
 #私も机の横においています。
12月には改訂版も出るようです。ソフトバンク社から出版されています。
ただ、この本はUNIXのユーティリティを作る人が対象なので、MacPerl
ユーザにとってはあんまり便利ではないかもしれません。
確か、以前、田中さんがMacPerl関連のホームページを紹介されていた
記憶があるんですが・・・
 #うろ覚えです。すみません。

武藤くん さんからのコメント
( Tuesday, December 09, 1997 17:11:20 )

早速、田舎の書店に問い合わせてみるだべ。
なんせ、基本の基本からさっぱりわけがわからねえので、
どこをどういじくってええのやらさっぱりだんべ。
んだども、感触としてなんか取っつきやすそうなんだべ。
CGIのサンプルもWEBで出回っているみてぇだがら、
加工もしやすいど思うだよ。

あんがとうごぜえますだ。(^^;

>確か、以前、田中さんがMacPerl関連のホームページを紹介されていた
>記憶があるんですが・・・

すんません、そこまで調べてないです。
あまりに膨大なここの書庫を調べるには、
覚悟が必要でして、、、、、。

元永二朗 さんからのコメント
( Tuesday, December 09, 1997 23:29:44 )

ラクダ本は絶対持っていたほうが良いのですが、これだけで入門しようとする
と、ちと敷居が高いです。
また、現在書店に売っている改定前のものは、Perl4のことしか書いてありま
せん。出たのが昔だから仕方ないけど。
というわけで、Perl5にも触れていて、かつ入門に適した本を一冊、その後
ラクダ本の改訂版が出たらすかさずそれも買う、というのが良いのではない
でしょうか。

>あまりに膨大なここの書庫を調べるには、
>覚悟が必要でして、、、、、。

検索、してみました?


→  infoseekで「MacPerl 入門書 初心者」の検索

usui , seiichi さんからのコメント
( Thursday, December 11, 1997 17:23:51 )

Jedit ・・・この会議室でも紹介されていますが、
      http://www.iijnet.or.jp/matsumoto/seihin/jedit/index.html
      シェアウェアのテキストエディタです。

use ・・・MacPerl付属のHelpで調べてみましょう。


ラクダ本持っていません。
持っていたほうがいいんでしょうか?

#ああっ、かなり時期はずれなフォロー&質問だ

武藤くん さんからのコメント
( Friday, December 12, 1997 17:51:04 )

>use ・・・MacPerl付属のHelpで調べてみましょう。
調べてみます、、、、(@@;

元永二朗 さんからのコメント
( Saturday, December 13, 1997 23:19:47 )

>ラクダ本持っていません。
>持っていたほうがいいんでしょうか?

いや、MacPerlのHelpを読める方ならいらないかもしれません
が・・、日本語で、ということだったので(^_^;。