• ベストアンサー

下の階層のディレクトリーにファイルを作るには?

はじめまして。 最近、perlの勉強をはじめたばかりの初心者です。 初歩的なことだと思うのですが、分からないことがあったので教えて頂ければ幸いです。 メールアドレスを認証するためのCGIを作っています。 下記は$passwd.htmlという名前のファイルを作って、soudan.htmlの内容を書き込んで保存する部分のスクリプトです。 #乱数htmlを読み込む open(IN,">$passwd.html"); #相談htmlを読み込む open(HTML,"soudan.html"); while($line=<HTML>){ print IN $line }; #乱数htmlを閉じる close(IN); 実行してみるとcgiとおなじファイルに「$passwd.html」ができました。 cgiのあるディレクトリの下の階層にファイルを作りたいと思っていろいろ調べてみたのですが、どのようにしたらいいのかよく分かりませんでした。 cgiのあるディレクトリより下の階層にファイルを作るにはどうしたらいいのでしょうか? 詳しい方、教えて頂ければ幸いです。 あと、こちらのサイトも役立つと思うのですが、oerlのプログラミングで困ったときに相談できる掲示板やサイトなどがありましたら教えてください。

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

  • ベストアンサー
  • mendokusa
  • ベストアンサー率13% (359/2726)
回答No.1

">./kasou/$passwd.html" とかじゃダメですか

OKIaHUKUOKA
質問者

お礼

ありがとうございました。 やってみたらうまくできました。 初歩的な事がよく分からないので助かりました。 ありがとうございました。

その他の回答 (1)

  • masaboo
  • ベストアンサー率58% (7/12)
回答No.2

#乱数htmlを読み込む →「書き込む」だと思う open(IN,">$passwd.html"); →書き込みなのに「IN」は誤解を招くと思う #相談htmlを読み込む open(HTML,"soudan.html"); while($line=<HTML>){ print IN $line →ここに;がないと動かない }; →ここに;はいらない #乱数htmlを閉じる close(IN); ################# 添削みたいな真似して失礼いたしました。 >実行してみるとcgiとおなじファイルに「$passwd.html」ができました。 cgiとおなじディレクトリということですよね。 相対パスで指定した場合は、常にcgiのファイルがあるディレクトリが基準となります。 mendokusさんのおっしゃるとおり、">./kasou/$passwd.html"などとしてあげればよいと思います。もちろん、保存先のディレクトリは予め作成しなければいけませんが。それとも、「下の階層」というのは">../$passwd.html"のことでしょうか。 もし、ご提示のコードそのものが目的でしたら、ファイルのコピーでもいいと思います。

参考URL:
http://oshiete1.goo.ne.jp/kotaeru.php3?q=151014

関連するQ&A