- 締切済み
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に当然実行結果が書き込まれていません.原因はなんでしょうか?
- みんなの回答 (1)
- 専門家の回答
みんなの回答
- sakusaker7
- ベストアンサー率62% (800/1280)
一応原因はつかめました。 正しく動いているわたしの環境で、 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はあるんですよね?
お礼
以上のようなことを踏まえて色々試してみますありがとうございました.
補足
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