- 締切済み
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. と表示されます。 解消法を教えてください。
- みんなの回答 (4)
- 専門家の回答
みんなの回答
- kabaokaba
- ベストアンサー率51% (724/1416)
>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; で十分.
勉強中ならなおさらuse encodingなんて使うべきではありません ダーティハックの時だけで十分
お礼
さっそくの返答ありがとうございます。 参考にさせていただきます。
- Werner
- ベストアンサー率53% (395/735)
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の別名で同じものです。
お礼
早速の回答ありがとうございます。 参考にさせていただきます。 ありがとうございました。
- zxcv0000
- ベストアンサー率56% (111/196)
encording では無く encoding です。 # うまくいかない時、スペルミスを確認するのは基本です。 文字コードの名前ですが、マイクロソフトが『Shift_Jis』と呼んでいるものは、インターネット規格では『Windows-31J』という名前で、encoding もこの名前を認識します。 だから、Windows上のPerlスクリプトなら、正しくは以下になります。 use encoding "Windows-31J"; shiftjis とか Shift_Jis とか書くと、Windowsの機種依存文字が未定義扱いになってしまいます。
補足
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. このようなエラーが表示されました。 誠に申し訳ございませんがどうすればよいかお教えください。
お礼
回答ありがとうございます。 ご指摘どおりでした。 ありがとうございました。