*main::val sjis
前者の場合、かなり古いバージョンのjcode.plやv2.3は利用を避けてみてください。 当サイトのプログラムにはjcode.pl-v2.3を梱包しているものがあります。 これが直ちにこの原因になるわけではないのですが、設置する環境との相性か、現実問題として不具合が生じる場合が報告されました。 たとえば、jcode.pl-v2.13に替えたところ問題が無くなったという報告もあります。
v2.0あたりのバージョンが安定しているものと思われますし、jcode.plを単純コード変換にしか当サイトのプログラムは使っていませんので、 新し過ぎても何か起きる可能性も否定できません。半角カナを全角に変換する処理があるプログラムについては、 少なくともv2.0以上のバージョンを使う必要があり、これは説明には書いてあると思います。 ダウンロードした中に不用意にも古いものが入っていた場合には、 お手数ですが別途ダウンロードをお願いします。
後者の場合、Perlはマルチスレッド機能が組み込まれている場合にjcode.plが使えなくなるそうです。 threads とはマルチスレッド機能のことで OS が pthreads(POSIXThreads) ライブラリを提供している場合組み込むことができます。 その場合は perl を make するまえに ./Configure -Dusethreads のように指定します。 つまり jperl のパッチとも関係なく、 -Dusethreads で作られた Perl では jcode.pl は使えません。 もし次のようにした場合に'define'と表示されたら、マルチスレッド機能が組み込まれていることになり、 jcode.plは使えませんので、サーバ管理者にthreadsを無効にして再組み込みしてもらう必要があります。
# perl -V:usethreads usethreads='define';