• ベストアンサー

Perlのスレッド?

ActivePerl 5.8.7を使っております。 thread failed to start: Not a CODE reference at ... というエラーが表示されますが、これは何のエラーでしょうか? Perlのスレッドに書かれた書籍やサイトがありましたら、教えていただけますか?

質問者が選んだベストアンサー

  • ベストアンサー
  • BLUEPIXY
  • ベストアンサー率50% (3003/5914)
回答No.1

スレッドの機能は、5.8.1から使用できます >これは何のエラーでしょうか? スレッドが開始できなかった(実行すべきコードが指定されていない?) できたら、プログラムをアップしてみて下さい。 http://aspn.activestate.com/ASPN/docs/ActivePerl/5.8/lib/Thread.html http://aspn.activestate.com/ASPN/docs/ActivePerl/5.8/lib/threads.html

参考URL:
http://aspn.activestate.com/ASPN/docs/ActivePerl/5.8/lib/Thread.html
全文を見る
すると、全ての回答が全文表示されます。

その他の回答 (2)

  • hara_peko
  • ベストアンサー率28% (11/38)
回答No.3

(^^; No.2です ×デリファレンス ○評価

全文を見る
すると、全ての回答が全文表示されます。
  • hara_peko
  • ベストアンサー率28% (11/38)
回答No.2

Not a CODE reference こちらの方だけ・・・ サブルーチンのリファレンスではない物を、サブルーチン としてデリファレンスしようとしたようです。

参考URL:
http://www.harukaze.net/~mishima/perl/man/perldiag.1.html
全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • perlでpostgresを使えるようにしたい

    今までwindows2000でperl5.6とpostgresでDBIの構築をしていました。 昨今のセキュリティ事情を鑑みて、windowsXPにOSを入れなおし、Perlも5.10.0.1005にし、posgresも8.4.0にしようと思い立ちました。 perlはActivePerlです。 ActivePerlもpostgresもインストールしました。 ネットで検索したところ両者をつなぐにはDBIのモジュールが必要だとありました。 (2000の時は会社の人からファイルをもらってコピーしたので何も考えなくてもできました。その人とも疎遠になってしまって質問もできない状態です) モジュールを入れようと、binフォルダにあるppmをコマンドプロンプトから叩くと、エラーが出ます。 ppm gui failed: DBI connect('dbname=C:\DOCUME~1\ランカ~1\LOCALS~1\APPLIC~1/ActiveState/ActivePerl//ppm-MSWin32-x86-multi-thread-5_8.db','',...) failed: unable to open database file というエラーです。 すでにどこから手をつけていいのか、何をまずすべきかがわからなくなってしまいました。 ご教授いただければ幸いです。 よろしくお願いいたします。

    • ベストアンサー
    • Perl
  • perl DBD::Pg インストールでエラー発生

    こんにちは。 以下の環境でPerl+postgreSQLのCGIを作成していますが、 DBI、DBD::PGのインストールでエラーが出てしまい大変困っています。 どうぞお力添えをお願いします。 環境---------------------- OS:CentOS VERSION = PostgreSQL 8.1.18 Perl:v5.8.8 -------------------------- ●手順 CPANより下記モジュールをダウンロードし、 ・DBI : DBI-1.609.tar.gz ・DBD::PG : DBD-Pg-2.16.1.tar.gz それぞれ ・perl Makefile.PL ・make ・make install を実行。 DBD::PGの perl Makefile.PL で pg_config のパスを聞かれるが存在しなかったため、ネットの情報から以下を実行。 yum install postgresql-devel 再度DBD::PGのperl Makefile.PL を実施しましたが、以下のようなワーニング(※1)が出力してしまい、 make,make installを実施後に動作確認のスクリプトを実行してもやはりエラーとなってしまいます。(※2) ※1 Warning: prerequisite version 0 not found. Could not eval ' package ExtUtils::MakeMaker::_version; no strict; local $VERSION; $VERSION=undef; do { use version; our $VERSION = qv('2.16.1'); }; $VERSION ' in Pg.pm: Can't locate version.pm in @INC (@INC contains: t/lib /usr/lib/perl5/site_perl/5.8.8/i386-linux-thread-multi /usr/lib/perl5/site_perl/5.8.7/i386-linux-thread-multi /usr/lib/perl5/site_perl/5.8.6/i386-linux-thread-multi /usr/lib/perl5/site_perl/5.8.5/i386-linux-thread-multi /usr/lib/perl5/site_perl/5.8.8 /usr/lib/perl5/site_perl/5.8.7 /usr/lib/perl5/site_perl/5.8.6 /usr/lib/perl5/site_perl/5.8.5 /usr/lib/perl5/site_perl /usr/lib/perl5/vendor_perl/5.8.8/i386-linux-thread-multi /usr/lib/perl5/vendor_perl/5.8.7/i386-linux-thread-multi /usr/lib/perl5/vendor_perl/5.8.6/i386-linux-thread-multi /usr/lib/perl5/vendor_perl/5.8.5/i386-linux-thread-multi /usr/lib/perl5/vendor_perl/5.8.8 /usr/lib/perl5/vendor_perl/5.8.7 /usr/lib/perl5/vendor_perl/5.8.6 /usr/lib/perl5/vendor_perl/5.8.5 /usr/lib/perl5/vendor_perl /usr/lib/perl5/5.8.8/i386-linux-thread-multi /usr/lib/perl5/5.8.8 .) at (eval 10) line 7, <FH> line 20. BEGIN failed--compilation aborted at (eval 10) line 7, <FH> line 20. WARNING: Setting VERSION via file 'Pg.pm' failed at /usr/lib/perl5/5.8.8/ExtUtils/MakeMaker.pm line 515 Multiple copies of Driver.xst found in: /usr/lib/perl5/site_perl/5.8.8/i386-linux-thread-multi/auto/DBI/ /usr/lib/perl5/vendor_perl/5.8.8/i386-linux-thread-multi/auto/DBI/ at Makefile.PL line 263 Using DBI 1.609 (for perl 5.008008 on i386-linux-thread-multi) installed in /usr/lib/perl5/site_perl/5.8.8/i386-linux-thread-multi/auto/DBI/ Writing Makefile for DBD::Pg ※2 install_driver(Pg) failed: Can't locate version.pm in @INC (@INC contains: /usr/lib/perl5/site_perl/5.8.8/i386-linux-thread-multi /usr/lib/perl5/site_perl/5.8.7/i386-linux-thread-multi /usr/lib/perl5/site_perl/5.8.6/i386-linux-thread-multi /usr/lib/perl5/site_perl/5.8.5/i386-linux-thread-multi /usr/lib/perl5/site_perl/5.8.8 /usr/lib/perl5/site_perl/5.8.7 /usr/lib/perl5/site_perl/5.8.6 /usr/lib/perl5/site_perl/5.8.5 /usr/lib/perl5/site_perl /usr/lib/perl5/vendor_perl/5.8.8/i386-linux-thread-multi /usr/lib/perl5/vendor_perl/5.8.7/i386-linux-thread-multi /usr/lib/perl5/vendor_perl/5.8.6/i386-linux-thread-multi /usr/lib/perl5/vendor_perl/5.8.5/i386-linux-thread-multi /usr/lib/perl5/vendor_perl/5.8.8 /usr/lib/perl5/vendor_perl/5.8.7 /usr/lib/perl5/vendor_perl/5.8.6 /usr/lib/perl5/vendor_perl/5.8.5 /usr/lib/perl5/vendor_perl /usr/lib/perl5/5.8.8/i386-linux-thread-multi /usr/lib/perl5/5.8.8 .) at /usr/lib/perl5/site_perl/5.8.8/i386-linux-thread-multi/DBD/Pg.pm line 20. BEGIN failed--compilation aborted at /usr/lib/perl5/site_perl/5.8.8/i386-linux-thread-multi/DBD/Pg.pm line 20. Compilation failed in require at (eval 3) line 3. Perhaps a module that DBD::Pg requires hasn't been fully installed at ./test02.pl line 5 どうぞよろしくお願いいたします。

    • ベストアンサー
    • Perl
  • perl niftyについて。use CGI;

    画像アップロードのスクリプトを作ろうと思っているのですが、 use CGI; という記述をすると、ここでエラーに引っかかります。 下はperl checkerでのエラー表示です Can't locate CGI.pm in @INC (@INC contains: /usr/local/lib/perl5/5.00503/sun4-solaris /usr/local/lib/perl5/5.00503 /usr/local/lib/perl5/site_perl/5.005/sun4-solaris /usr/local/lib/perl5/site_perl/5.005 .) at a.cgi line 10. BEGIN failed--compilation aborted at a.cgi line 10. 参考URLはここ http://www.topstudio.co.jp/~kmuto/html/node38.html niftyでは使えないようになってしまっているのでしょうか? また、CGI.pmを使わないファイルアップロードの仕組みを解説しているサイトを知っている方がいたら、教えてくださいませ。

    • ベストアンサー
    • CGI
  • Perlのリファレンスとアロー演算子について

    Perlの勉強をしています. リファレンスとアロー演算子について教えて下さい. ■質問 下記のうち,(4)がどのように評価されるか教えて下さい. 先頭のシャープはプロンプトです. (1) よくある配列要素の指定方法 # perl -e '@a = (0,1,2,3); print($a[1]);' →1 (2) あまりよろしくないが,スライスを使っても,print文では@a[1]がリストのコンテキストで評価されるので同じ結果にはなる # perl -e '@a = (0,1,2,3); print(@a[1]);' →1 (3) よくあるリファレンス/デリファレンスの方法 # perl -e '$a = [0,1,2,3]; print($a->[1]);' →1 (4) 下記が成り立つ意味が分からない # perl -e '@a = (0,1,2,3); print(@a->[1]);' →1 @aは配列であってリファレンスでは無いと思うのですが,配列にアロー演算子が使えてしまっていいんでしょうか? Perl5のマニュアルによれば(http://www.namazu.org/~tsuchiya/perl/info/perl-ja_20.html),アロー演算子は「右側が [...] か {...} の形の添字であれば、左側は配列かハッシュへのハードリファレンスかシンボリックリファレンス」と書かれているので,左側が配列そのものであるときは,エラーになるのではないかと思うのですが... 分かる方,どなたかご教授いただければ幸いです. ■環境 # perl -v This is perl, v5.10.1 (*) built for i686-cygwin-thread-multi-64int (with 13 registered patches, see perl -V for more detail) Copyright 1987-2009, Larry Wall Perl may be copied only under the terms of either the Artistic License or the GNU General Public License, which may be found in the Perl 5 source kit. Complete documentation for Perl, including FAQ lists, should be found on this system using "man perl" or "perldoc perl". If you have access to the Internet, point your browser at http://www.perl.org/, the Perl Home Page.

  • perlを初めて使うのですが、ppmを使ってのインストールができません

    このたび初めてperlを使うのですが、コマンドプロンプトを起動し、ppmと打つと C:\Documents and Settings\自分の名前>ppm Fatal error: couldn't find or create config file targets.cfg: Cannot chdir back to C:/Documents and Settings/自分の名前: No such file or directory at C:/Perl/lib/ FindBin.pm line 182 BEGIN failed--compilation aborted at C:/Perl/lib/FindBin.pm line 188. Compilation failed in require at C:/Perl/site/lib/PPM/Config.pm line 444. BEGIN failed--compilation aborted at C:/Perl/site/lib/PPM/UI.pm line 1049. Compilation failed in require at C:\Perl\bin\ppm3-bin line 16. このような文章がでてきてしまい、インストールすることができませんでした。自分がインストールしようとしているのは install time-hires install io-zlib install win32-api install http-lite install getopt-long なのですが・・・ 自分なりにサイトを見てまわりましたが、確信にたどり着けず困り果てています。 どなたかご教授をお願いします。 PCの環境 OS: Windows XP Home Edition Perl: Active Perl 5.8.3.809 PPM : version 3.1

  • DBDエラー

    いつも、参考にしております。 Oracleの接続で困ってます。 環境: Windows 2003 Sever DB     :Oracle 10g トライアル版 ActivePerl : V5.8.9 Webサーバ :IISv6.0 CGIのDBIを使って、接続しようとすると 構文チェックで、下記のエラーが発生しております。 Perl lib version (v5.8.3) doesn't match executable version (v5.8.9) at C:\oracle\product\10.2.0\db_1\perl\5.8.3\lib/MSWi n32-x86-multi-thread/Config.pm line 32. Compilation failed in require at C:\oracle\product\10.2.0\db_1\perl\5.8.3\lib/MSWin32-x86-multi-thread/DynaLoader.pm lin e 25. BEGIN failed--compilation aborted at C:\oracle\product\10.2.0\db_1\perl\5.8.3\lib/MSWin32-x86-multi-thread/DynaLoader.pm line 25. Compilation failed in require at C:\oracle\product\10.2.0\db_1\perl\site\5.8.3\lib/MSWin32-x86-multi-thread/DBI.pm line 156. BEGIN failed--compilation aborted at C:\oracle\product\10.2.0\db_1\perl\site\5.8.3\lib/MSWin32-x86-multi-thread/DBI.pm l ine 156. Compilation failed in require at CmFunc.pm line 13. BEGIN failed--compilation aborted at CmFunc.pm line 13. 以上です。ご教授お願い致します。

  • perlのモジュールについて

    Linuxを使って間もない者です.xamppをLinuxにインストールしたのですが、モジュールの格納場所が違っているせいかうまくCGIスクリプトがうまく実行できません. Linux上でのperlモジュールの格納場所を教えていただけないでしょうか? 以下エラー内容 Can't locate JSON/PP.pm in @INC (@INC contains: /usr/lib/perl5/5.8.6/i386-linux-thread-multi /usr/lib/perl5/5.8.6 /usr/lib/perl5/site_perl/5.8.6/i386-linux-thread-multi 省略・・ /usr/lib/perl5/vendor_perl/5.8.6 //usr/local/lib/site_perl/5.8.2/i386-linux-thread-multi /usr/local/lib/site_perl/5.8.2 /usr/local/lib/site_perl .) at (eval 4) line 3.

  • PerlからOracleに接続

    ご存知の方おられましたら、ご教示お願い致します。 昨日より、Perlのプログラムを始め、Oracleに接続するものを作成しておりまが以下のエラーがでてきて困っております。 接続部分ソース--------------------------- #!C:\パス use DBI; $dbh = DBI->connect("dbd:Oracle:データベース名", "ユーザ","パスワード"); エラー----------------------------------- install_driver(Oracle) failed: Can't locate loadable object for module DBD::Orac le in @INC (@INC contains: C:/Program Files/Perl/lib C:/Program Files/Perl/site/ lib .) at (eval 1) line 3 Compilation failed in require at (eval 1) line 3. Perhaps a module that DBD::Oracle requires hasn't been fully installed at database.pl line 5 環境--------------- OS WindowsXP pro perl ActivePerl-5.8.6.811 DBI,DBDはPPMでインストールしました。 接続先 OS Windows2003 DB oracle9 後、 use DBI; @ary = DBI->available_drivers; foreach (@ary){ print $_,"\n"; } でDBI使用できるDBDドライバを出した結果、Oracleが表示されておりました。 どうか、ご存知の方お願い致します。

  • Perl Dev Kit error

    いつもお世話になります。 ActiveState.comのActivePerl 5.14.4をwindows 8にインストールしました。 それから去年ActiveState.comから購入した(少し古い)  Perl Dev Kit 9.2.1とそのライセンスをインストールしました。 PDKのツールたとえばPerlAPPを起動しようとすると Win32:BuildNumber not consistent with perl -v というエラーがでます。 ActivePerl は5.16.3もダウンロードできますが、やはり同じエラーです。 もう一度PDKを買いなおさないとだめでしょうか。。。 ご指導のほどお願いいたします。

    • ベストアンサー
    • Perl
  • perlのdo-while文で抜け出せない 

    perlのwhile,do-while,last文に関する質問です。 1) code1のようなプログラムを作ったのですが   eでdo_whileを抜け出すことができませんがなぜでしょうか。 ---code1(eで抜け出せない)(NG)--- my $sum=0; do{  my $a=<STDIN>;  chomp($a);  $sum=$sum+$a; }while($a ne 'e'); print $sum; -------------------------------- 2) 抜け出す方法をいろいろ試していたら   while(1)にしてlastで抜けるようにすると   code2ではeで抜け出すことができるように   なりましたが、   do~while(1)にしたcode3では、  「Can't "last" outside a loop block at …」C   というエラーが発生します。   code2とcode3はwhileがdo~whileになって   条件を見る位置がループの始めか終わりの   違いだけなのに、なぜ、code2ではOKで、   code3ではエラーになるのでしょうか。 ---code2(eで抜け出せる)(OK)----- my $sum=0; while(1) {  my $a=<STDIN>;  chomp($a);  last if ($a eq 'e');  $sum=$sum+$a; }; print $sum; --------------------------------- ---code3(エラーになる)(NG)----- my $sum=0; do{  my $a=<STDIN>;  chomp($a);  last if ($a eq 'e');  $sum=$sum+$a; }while(1); print $sum; --------------------------------- よろしくお願いします。 Windows7 , ActivePerl(v5.16.3)

    • ベストアンサー
    • Perl