• 締切済み

ActivePerl-5.10.0.1004の日本語対応にする方法

超初心者の質問ですみません。 今、Perlの絵本でActivePerlの勉強中ですが use encording"shiftjis"; $a=1; print "はじめは$aでした。\n"; $a=++; print "1増えて$aになりました。\n"; $a=--; print "1減って$aに戻りました。\n"; を実行しても、 Can't locate encording.pm in @INC (@INC contains: C:/Perl/site/lib C:/Perl/lib . ) at hello8.pl line 1. BEGIN failed--compilation aborted at hello8.pl line 1. と表示されます。 解消法を教えてください。

みんなの回答

  • kabaokaba
  • ベストアンサー率51% (724/1416)
回答No.4

>syntax error at hello8.pl line 5, near "++;" >syntax error at hello8.pl line 7, near "--;" ++や--の使い方が間違ってるから. 正しくは $a++; $a--; けど,こういう,increment/decrementは もっとわかってから使いましょう. 素直に $a=$a+1; $a=$a-1; で十分.

yoshinobu2
質問者

お礼

回答ありがとうございます。 ご指摘どおりでした。 ありがとうございました。

noname#208124
noname#208124
回答No.3

勉強中ならなおさらuse encodingなんて使うべきではありません ダーティハックの時だけで十分

yoshinobu2
質問者

お礼

さっそくの返答ありがとうございます。 参考にさせていただきます。

  • Werner
  • ベストアンサー率53% (395/735)
回答No.2

Perl5.8以降で日本語を扱うなら以下のページが参考になると思います。 結構ややこしいところもあるので 勉強中は日本語使わなくてすむ所では使わないようにして進めた方が楽かもしれません。 Perl 5.8.x Unicode関連 http://www.rwds.net/kuroita/program/Perl_unicode.html WindowsでPerlを使うもんじゃない http://www.aritia.org/hizumi/perl/perlwin.html 2つめのページ内にあるcp932というのはNo.1で言われているWindows-31Jの別名で同じものです。

yoshinobu2
質問者

お礼

早速の回答ありがとうございます。 参考にさせていただきます。 ありがとうございました。

  • zxcv0000
  • ベストアンサー率56% (111/196)
回答No.1

encording では無く encoding です。 # うまくいかない時、スペルミスを確認するのは基本です。 文字コードの名前ですが、マイクロソフトが『Shift_Jis』と呼んでいるものは、インターネット規格では『Windows-31J』という名前で、encoding もこの名前を認識します。 だから、Windows上のPerlスクリプトなら、正しくは以下になります。 use encoding "Windows-31J"; shiftjis とか Shift_Jis とか書くと、Windowsの機種依存文字が未定義扱いになってしまいます。

yoshinobu2
質問者

補足

zxcv0000さん 回答ありがとうございます。 ご指摘どおり、 use encoding "Windows-31J"; 試してみましたところ、 syntax error at hello8.pl line 5, near "++;" syntax error at hello8.pl line 7, near "--;" Execution of hello8.pl aborted due to compilation errors. このようなエラーが表示されました。 誠に申し訳ございませんがどうすればよいかお教えください。

関連するQ&A