• 締切済み

Unicode::Japanese を継承できない

日本語の変換に関してUnicode::Japaneseを使った独自の処理を 実装しようとしているのですが、Unicode::Japaneseの継承が上手く いきません。 具体的には、、、 下記のようなTset.pmファイルを作成して試してみたところ //////////////////////////////////// package Test; use strict; use lib "./lib"; use Unicode::Japanese; our @ISA = qw ( Unicode::Japanese ); //////////////////////////////////// 次のようなエラーが出てしまいます。 Goto undefined subroutine &Extras::PurePerl::_init_table at common/perl/lib/Unicode/Japanese.pm line 222, <GEN0> line 1335. Unicode::Japanese中にUnicode::Japanese::PurePerlというものが あることのが原因と思うのですが、このようなモジュールを継承する にはどのようにしたらよいか分かりません。 どなたかご教示いただけませんでしょうか?

noname#31778
noname#31778
  • Perl
  • 回答数1
  • ありがとう数2

みんなの回答

  • bgbg
  • ベストアンサー率53% (94/175)
回答No.1

チェック項目です。 ・動作環境を補足してください(OS,perlのバージョン) ・Unicode::Japaneseはcpanかppmでインストールしましたか? ・そうでない場合、Japanase.pmはバイナリモードでFTP転送しましたか? ・ use Unicode::Japanese qw(PurePerl); とした場合、動作しますか?

noname#31778
質問者

補足

> ・動作環境を補足してください(OS,perlのバージョン) Win XP Pro(SP2) + ActivePerl 5.8.8 > ・Unicode::Japaneseはcpanかppmでインストールしましたか? > ・そうでない場合、Japanase.pmはバイナリモードでFTP転送しましたか? XSなしのPerlコードのみで動作させたいので, Japanese.pm をコピーしただけです。 Unicode::Japaneseを直接使っての動作は確認済です。 > ・ use Unicode::Japanese qw(PurePerl); とした場合、動作しますか? まったく同様のエラーを吐きます。 もしや、と思い… //////////////////////////////////// use Unicode::Japanese qw(PurePerl); our @ISA = qw ( Unicode::Japanese::PurePerl ); //////////////////////////////////// としてみたら、エラー内容は以下のものに変わりました。 Undefined subroutine &Test::set called.

関連するQ&A

  • エラー内容がわかりません。Constant subroutine ~ undefined at ~

    CentOS 5.2, Perl 5.8.9の環境で Perlスクリプトを実行すると、以下のようなエラーが表示されます。 [Thu Jan 29 16:54:59 2009] [error] [client 192.168.112.191] Constant subroutine __USE_POSIX undefined at /usr/lib/perl5/5.8.8/i386-linux-thread-multi/features.ph line 8. [Thu Jan 29 16:54:59 2009] [error] [client 192.168.112.191] Constant subroutine __USE_POSIX2 undefined at /usr/lib/perl5/5.8.8/i386-linux-thread-multi/features.ph line 9. [Thu Jan 29 16:54:59 2009] [error] [client 192.168.112.191] Constant subroutine __USE_POSIX199309 undefined at /usr/lib/perl5/5.8.8/i386-linux-thread-multi/features.ph line 10. [Thu Jan 29 16:54:59 2009] [error] [client 192.168.112.191] ………… インターネットを調べたりしたのですが、なかなか有用な情報が得られませんでした。 strictプラグマが出しているようなのですが、理由がつかめません。 試しにCentOS 4.6で実行してみたところ何もエラーが表示されませんでした。 よろしくお願いいたします。

  • ワーニング? encoding.pm

    perlで以下のようなエラーが出るのですが、これを出ないようにするにはどうしたらよいのでしょうか? Constant subroutine DEBUG redefined at c:/usr/lib/encoding.pm line 8. Subroutine _exception redefined at c:/usr/lib/encoding.pm line 23. Subroutine in_locale redefined at c:/usr/lib/encoding.pm line 34. Subroutine _get_locale_encoding redefined at c:/usr/lib/encoding.pm line 36. Subroutine import redefined at c:/usr/lib/encoding.pm line 89. Subroutine unimport redefined at c:/usr/lib/encoding.pm line 156.

    • ベストアンサー
    • Perl
  • SAXのcharacters()内で得る値について

    XML(UTF-8)ファイルをPerlでOPENして読み込んで、 XML::SAXで、 characters()メソッド内で取得した文字列値を利用していますが、 XML内に&文字が存在していると、 そこで、 utf8 "\x81" does not map to Unicode at C:/Perl/site/lib/XML/SAX/PurePerl/Reader/ Stream.pm line 37. utf8 "\x8C" does not map to Unicode at C:/Perl/site/lib/XML/SAX/PurePerl/Reader/ Stream.pm line 37. Undeclared entity [Ln: 516, Col: 21] エラーが出て強制終了されます。 どうすれば、このようなエラーを解消できますか?

    • ベストアンサー
    • XML
  • ムーバブルタイプ3.2のBerkeleyDB⇒SQLへの移行について

    現在ロリポップでムーバブルタイプ3.2で新規にblogを作りました。 データ形式をはじめはBerkeleyDBで使用していたのですがSQLへ移行を行ないたいと思い以下のものを利用してみたのですが以下のエラーがでます。 http://as-is.net/wiki/MT_Database_Converter/ja mt-db-convert.cgi($Rev: 173 $): Converting your MT data between DB engines (for MT 3.2) **** WARNING: Subroutine Jcode::ucs2_euc redefined at extlib/Jcode/Unicode/NoXS.pm line 56. **** WARNING: Subroutine Jcode::euc_ucs2 redefined at extlib/Jcode/Unicode/NoXS.pm line 71. **** WARNING: Subroutine Jcode::euc_utf8 redefined at extlib/Jcode/Unicode/NoXS.pm line 87. **** WARNING: Subroutine Jcode::utf8_euc redefined at extlib/Jcode/Unicode/NoXS.pm line 94. **** WARNING: Subroutine Jcode::ucs2_utf8 redefined at extlib/Jcode/Unicode/NoXS.pm line 101. **** WARNING: Subroutine Jcode::utf8_ucs2 redefined at extlib/Jcode/Unicode/NoXS.pm line 124. どのような設定をすればSQLに移行できるのでしょうか?

  • utf-8コードの指定

    以下のURLにて同じ質問をしました。 http://soudan1.biglobe.ne.jp/qa4938782.html その時は解決したと思ったのですが、私の勘違いでした。 Undefined subroutine &main::Jcode called at listpage.pl line 220, line 855. というエラーからして、 $value = Jcode($value)->utf8; という記述そのものの問題ではなく、jcode.pmが認識されていないということなのでしょう。 でもプログラムの最初には use Jcode; としてあるし、パスが通っていないことも考えて#!(何と呼ぶんだったっけ?)も #!/usr/bin/perl -I /usr/lib としました。perl.exeをd:\usr\bin/に置いて /usr/bin/perl で良いなら、jcode.pmはd:\usr/libにあるからパスはこれで良いですよね!? ちなみにこのディレクトリにはcgi.pmも置いていますが、cgi.pmは普通に動いてます。 何が問題だと考えられますか? お手数をお掛けします。

  • use lib qw(変数名);は無理?

    モジュールへのパスを設定するのに以下のようにすると use lib qw($cmd_path); Can't locate BL/FileIO.pm in @INC (@INC contains: $cmd_path /usr/lib/perl のようにエラーになり、$cmd_path が展開されません。 use lib qw("$cmd_path"); use lib q"$cmd_path"; など色々試したのですが、ダメでした。 設定する方法はあるのでしょうか? $cmd_path はベタ書きしかないのでしょうか?

  • Perl:Unicodeプロパティ作れない

    お世話になります。 Unicodeの文字プロパティの使い方を学ぶために、以下のようなスクリプトをUTF-8で保存しました。 ============ #! /bin/perl # # utf8_unireg.pl use 5.010; use strict; use warnings; use utf8; binmode STDOUT, ":encoding(shift_jis)"; my $str = "a:b:c:"; say join "|", ($str =~ /\p{ASCII}/g); say join "|", ($str =~ /\p{AsciiAlpha}/g); sub AsciiAlpha { return <<END; 0041 005A # A-Z 0061 007A # a-z END } ============ 実行するとこうなります。 ============ C:\Perl\perl>utf8_unireg2.pl a|:|b|:|c|: Can't find Unicode property definition "AsciiAlpha" at C:\Perl\perl\utf8_unireg2.pl line 14. ============ \p{AsciiAlpha}というプロパティの作成に失敗しているようです。。 なぜか分かりますでしょうか? よろしくお願いします。

    • ベストアンサー
    • Perl
  • WWW::Mixi::Scraper

    はじめまして。Perl初心者です。 このたび、WWW::Mixi::Scraperを使ってみようと思い、 http://search.cpan.org/~ishigaki/WWW-Mixi-Scraper-0.11/lib/WWW/Mixi/Scraper/Mech.pm の、 SYNOPSISに書いてあるソースを実行してみたのですが、 Use of uninitialized value in concatenation (.) or string at [パス]/WWW/Mixi/Scraper/Mech.pm line 18. logged in to mixi at [パス]/WWW/Mixi/Scraper/Mech.pm line 44. Undefined subroutine &WWW::Mixi::Scraper::Mech::_uri called at [パス]/WWW/Mixi/Scraper/Mech.pm line 72. と、エラーが出てしまいました。 ちなみに、foo@~のところとpasswordには自分のmixiにログインするパスを入れています。 他に追記が必要なのかとも思いましたがまったくわかりません…。 どなたかご教授いただければ幸いです。

  • strict.pmはどこにありますか?

    ローカル環境ではstrictを ダウンロードしていれた記憶もないので 標準モジュール かな?っと思っていたのですが さくらインターネットを借りようとしているのですが use strict; を書くとInternal Server Error になるんです。 XML::XPath; など ほかのモジュールは、http://theoryx5.uwinnipeg.ca/ppms/ からダウンロードして use lib ' で使えるようにしたのですが、 strictだけ みつからないので 動作確認して使えないんです。 strict.pmを配布しているサイトをご存じでしたら 教えてください。

    • ベストアンサー
    • Perl
  • パスがうまく通らない

    Check.pmが  o:\public_html/post_pervice/cgi/lib にあります。 このモジュールを利用するために以下のようなプログラムを書きました。   #! /usr/bin/perl -w   use CGI::Carp qw(fatalsToBrowser);   unshift @INC, "o:/public_html/post_service/cgi/lib";   print join "\n",@INC;   use Check; この中の  use Check; をコメントで伏せて動かすと、   o:/public_html/post_service/cgi/lib   O:/usr/site/lib   O:/usr/lib のような表示がなされるので、  unshift @INC, "o:/public_html/post_service/cgi/lib"; はちゃんと機能しているようです。 しかし  use Check; のコメントを外して動かすと、   Can't locate Check.pm in @INC (@INC contains: O:/usr/site/lib O:/usr/lib .) at O:\public_html\post_service\cgi\showINC.pl line 8.   BEGIN failed--compilation aborted at O:\public_html\post_service\cgi\showINC.pl line 8. のようなエラーが出てしまいます。 何がいけないのでしょう。

    • ベストアンサー
    • Perl

専門家に質問してみよう