• 締切済み

YAMLについて

perlの初心者の者です. 以下のようなサンプルソースを実行すると Can't locate auto/YAML/Syck/DumpYAML.al in @INC (@INC contains: C:/Perl/site/lib C:/Perl/lib .) at C:/Perl/site/lib/YAML/Syck.pm line 113 というエラーが出てしまってyaml.txtに当然実行結果が書き込まれていません.原因はなんでしょうか?

  • aja8
  • お礼率28% (11/39)
  • Perl
  • 回答数1
  • ありがとう数1

みんなの回答

  • sakusaker7
  • ベストアンサー率62% (800/1280)
回答No.1

一応原因はつかめました。 正しく動いているわたしの環境で、 C:\Perl\site\lib\auto\YAML\Syck のディレクトリ 2008/01/22 16:29 <DIR> . 2008/01/22 16:29 <DIR> .. 2008/01/22 16:29 423 .packlist 2008/01/22 16:28 0 Syck.bs 2008/01/22 16:28 77,824 Syck.dll 2008/01/22 16:28 786 Syck.exp 2008/01/22 16:28 1,910 Syck.lib 2008/01/22 16:28 257,024 Syck.pdb 6 個のファイル 337,967 バイト この中の Syck.dll の名前を変えます。 C:\Perl\site\lib\auto\YAML\Syck>ren Syck.dll Syck.dll.1 YAML::Syckを使ったテストスクリプトを実行します。 E:\work\t\0122>perl testyaml.pl YAML::Syck::VERSION = 1.01 Can't locate auto/YAML/Syck/DumpYAML.al in @INC (@INC contains: c:\home\perl C:/ Perl/site/lib C:/Perl/lib .) at C:/Perl/site/lib/YAML/Syck.pm line 113 と同じエラーが起きるようになりました。 このことから、Syck.dll がしかるべき位置にインストールされていないのが 直接の原因であると思われます。 xamppをキーワードに検索したところ VistaにXAMPPをインストールする際の注意点[to-R] http://blog.webcreativepark.net/2008/01/06-024311.html インストールするXAMPPですが最新版の1.6.5ですとperlアドオンがインストールできません。 旧バージョンのページで1.6.2をダウンロードしてインストールすればperlアドオンのインストールに成功します。 という情報が見つかりました。 ActivePerlと、XAMPPに同梱のperlと二つ入っている というお話でしたが、 後者のディレクトリ構成がどのようになっているのか わかりませんので、 Syck.dll をどこに置けばよいという回答はできません。 #インストールして調べろというのは勘弁。 とりあえずは手作業で、 ご自分の cpanが使った作業ディレクトリにある Syck.dll他のファイルを、 c:\perl\site\lib\auto\YAML\Syck というディレクトリに放り込んだらどうなりますか? c:\perl\site\lib\YAML に Syck.pmはあるんですよね?

aja8
質問者

お礼

以上のようなことを踏まえて色々試してみますありがとうございました.

aja8
質問者

補足

sakusaker7様, ご回答ありがとうございます. >旧バージョンのページで1.6.2をダウンロードしてインストールすれば>perlアドオンのインストールに成功します。 >という情報が見つかりました。 インストールし,再度スクリプトを実行しましたが, 今度は固まったまま結果もエラーも出ません.Ctrl+cで強制終了してプログラムを終了しています.やはりSyck.dllの格納場所が異なっているのでしょうか? >c:\perl\site\lib\auto\YAML\Syck >というディレクトリに放り込んだらどうなりますか? .packlistとlibSyck.dll.aとSyck.bsとSyck.dllを入れましたが, 結果は同じです. これらのファイルはc:\xampp\\perl\site\lib\auto\YAML\Syck にも4つのファイルが格納されています. >c:\perl\site\lib\YAML >に Syck.pmはあるんですよね 8KBのSyck.pmがあります. 別の質問になってしまうのですが,お聞きしたいことがあります. CGIをプラウザで表示したところこのようなエラーが出てしまいました.エラーの原因はご存知でしょうか? テンプレートファイルのパーミッションを変更が必要なのかと思うのですが.大変恐縮です. Software error: HTML::Template->new() : Cannot open included file C:/work/test/template/do_top.txt : file not found. at /usr/lib/perl5/site_perl/5.8/cygwin/HTML/Template.pm line 1658 HTML::Template::_init_template('HTML::Template=HASH(0x101eef50)') called at /usr/lib/perl5/site_perl/5.8/cygwin/HTML/Template.pm line 1238 HTML::Template::_init('HTML::Template=HASH(0x101eef50)') called at /usr/lib/perl5/site_perl/5.8/cygwin/HTML/Template.pm line 1124

関連するQ&A

  • YAMLについて

    perlの初心者の者です. 以下のようなサンプルソースを実行すると Can't locate auto/YAML/Syck/DumpYAML.al in @INC (@INC contains: C:/Perl/site/lib C:/Perl/lib .) at C:/Perl/site/lib/YAML/Syck.pm line 113 というエラーが出てしまってyaml.txtに当然実行結果が書き込まれていません.原因はなんでしょうか?cpanコマンド, ppmコマンドを用いてYAML::Syckをうまくインストールできなかったのでcpanサイトにいってtarボールを取ってきて解凍し, 適当な格納モジュールフォルダに格納しています. サンプルスクリプト #!/usr/bin/perl use YAML::Syck; $data = [ {data1=>10, data2=>20, data3=>30} ]; DumpFile("test.txt", $data); 出力結果はtest.txtは  data1: 10 data2: 20 data3: 30 になるはずなのですが.

    • ベストアンサー
    • Perl
  • @INCにrequireされたファイルが無い

    自作のCGIを実行したところ Can't locate BASE64 in @INC (@INC contains: C:/Perl/site/lib C:/Perl/lib .) at g etHTTP line 71. のようなエラーが出ます。 BASE64がインストールされているかどうか確認するために、次のサイトのcheck.cgiを実行してみました。 http://perl.shtml.jp/check/check.html インストールされているということなので、検索を掛けてBase64.pmのパスを調べました。 C:\Perl\lib\MIME そこで以下のコードを追加して実行しなおしました。 unshift @INC, "C:/Perl/lib/MIME"; 残念ながらうまく動きませんでした。 Can't locate BASE64 in @INC (@INC contains: C:/Perl/lib/MIME C:/Perl/site/lib C: /Perl/lib .) at getHTTP line 71. どうすれば良いでしょう。 お手数をお掛けします。

    • ベストアンサー
    • Perl
  • モジュールに定義した関数の実行

    sample.pmに定義したhello関数をmain.plから呼び出したいと思っています。(sample.pmとmain.plは同じディレクトリに存在)下記のように書いてみたのですが実行したところ以下のようなエラーが出てしまいました。これはどういう対応をすればよろしいのでしょうか? Can't locate sample.pm in @INC (you may need to install the sample module) (@INC contains: C:/Strawberry/perl/site/lib C:/Strawberry/perl/vendor/lib C:/Strawberry/perl/lib) at c:\Perl_prj\main.pl line 2. (main.pl) require 'sample.pm'; hello(); (sample.pm) sub hello { print 'hello'; } 1;

  • 添付ファイル保存perlの実行エラー

    お世話になります。 perl初心者です。 以下ののサイトから拾ってきたスクリプトを実行したところ、エラーがでて上手く実行されません。 http://www.jp-z.jp/perlmemo/parse_MIME-Parser_multipartmail.html ----- #!/usr/bin/perl use MIME::Parser; new MIME::Parser->parse(\*STDIN); ----- error message: Can't locate auto/Mail/Internet/autosplit.ix in @INC(@INC contains: C:/Perl/lib C:/Perl/site/lib .) at C:/Perl/lib/AutoLoader.pm line 100. at C:/Perl/lib/Mail/Internet.pm line 10 autosplit.ixが存在しないのかと思ったのですが、モジュールではないようなのでどうインストールするのかもよくわかりません。 詳しい方いらっしゃいましたらお助けください。。

  • Can't locate...

    こんにちは。Perl初心者で、 ネット上のPerlのサンプルプログラムを動かそうとしましたが 以下のようにエラーがでて実行できません。。 Can't locate Lingua/JA/Romanize/Japanese.pm in @INC (@INC contains: ./ /usr/local/lib/perl5/5.00504/i686-linux /usr/local/lib/perl5/5.00504 /usr/local/lib/perl5 /site_perl/5.005/i686linux /usr/local/lib/perl5/site_perl/5.005 .) at object.cgi line 4. BEGIN failed--compilation aborted at object.cgi line 4. これはどういったエラーで、どうすれば解決しますか。 教えてください。

  • 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. と表示されます。 解消法を教えてください。

  • Can't locate NKF.pm と表示されて、namazuでインデックスが作れない

    Namazuのインストールが終わり インデックスを作成しようとして mknmzを実行すると Can't locate NKF.pm in @INC (@INC contains: C:/namazu/share/namazu/filter/win32 C:/namazu/share/namazu/filter C:/namazu/share/namazu/pl . C:/Perl/site/lib C:/Perl/lib) at C:\namazu\bin/mknmz line 881. というメッセージが表示されて インデックスの作成が中断してしまいます。 何が下人なのか、皆目見当がつきません。 解決のために何が必要なのか、何をすればいいのか、 教えていただけないでしょうか。 宜しくお願いします。

  • CygwinでPerlのCSV_XSを実行する

    Cygwin TerminalをWin7x64にインストールしました。 インストール完了後、Perlプログラムでuse Text::CSV_XSを実行すると Can't locate Text/CSV_XS.pm in @INC エラーが出てしまいます。 ・エラー Can't locate Text/CSV_XS.pm in @INC (@INC contains: /usr/lib/perl5/site_perl/5.14/i686-cygwin-threads-64int /usr/lib/perl5/site_perl/5.14 /usr/lib/perl5/vendor_perl/5.14/i686-cygwin-threads-64int /usr/lib/perl5/vendor_perl/5.14 /usr/lib/perl5/5.14/i686-cygwin-threads-64int /usr/lib/perl5/5.14 /usr/lib/perl5/site_perl/5.10 /usr/lib/perl5/vendor_perl/5.10 /usr/lib/perl5/site_perl/5.8 .) at mysql.pl line 11. ・やってみたこと perl -MCPAN -e shell install Text::CSV_XS を実行してみたのですがダメでした。 どのように対応すれば解決できますでしょうか? ご教授お願いします。

    • ベストアンサー
    • Perl
  • Jcode.pmについて

    ネット上からダウンロードしてきたCGIプログラム内で、Jcode.pmを使用しているようなのですが、サーバ にUpしたところ、以下の様なエラーが表示されました。 ※1 Can't locate Jcode.pm in @INC (@INC contains: /usr/lib/perl5/5.6.1/i386-linux /usr/lib/perl5/5.6.1 /usr/lib/perl5/site_perl/5.6.1/i386-linux /usr/lib/perl5/site_perl/5.6.1 /usr/lib/perl5/site_perl .) at access/accview.cgi line 68. ※2 BEGIN failed--compilation aborted at access/accview.cgi line 68. ちなみに、accview.cgi line 68には use Jcode; と書かれていました。 エラーの原因として、何がありますか? また、その解決法を教えていただきたいです。

    • ベストアンサー
    • Perl
  • SOAP::Liteを利用したい!

    Linux上でPerlを用いて use SOAP::Lite .... というプログラムを書いたのですが、 これを実行させると Can't locate SOAP/Lite.pm in @INC(@INC contains : /usr/local/lib/perl5/5.8.5/i686-linux.... SOAP/Lite.pmが含まれていないというエラーメッセージが表示されます。 現在使っているPerlのバージョンが5.8.5であり、SOAP/Lite.pmがないみたいです。 このコンピュータには5.005のバージョンがあり、ここには、 SOAP/Lite.pmが /usr/lib/perl5/site-perl/5.005/Apache/ /usr/lib/perl5/site-perl/5.005/XMLRPC/ の下にあります。 5.8.5のバージョンで、設定を変えてこれを利用したいと思っているのですが、設定の変え方がわかりません。どのような方法がありますか?教えてください。

    • ベストアンサー
    • Perl

専門家に質問してみよう