※ ChatGPTを利用し、要約された質問です(原文:perl の printでのファイルへの指示にて)
perlのprintでファイルへの指示について
このQ&Aのポイント
perlのprintを使ってファイルへの指示を出したい場合、自動でファイルが生成されない問題に遭遇しました。macでperlを勉強中で、まだ初心者です。
設定に問題はないか調べてもわからず、ソースコードに不備がある可能性も考えられます。助けてください。
以下のソースコードを使用しています。 count.txtというファイルが存在しない場合に自動で作成されるはずですが、実際には生成されません。
独学でmacでパールを勉強しています。
始めてからまだ1週間くらい。
教科書みながら、print命令でファイルハンドルに指示を出してるのですが、
書き込めはできるのですが、
ファイルが無い場合、
新規に自動でファイルが作成されるはずとの記載があったのですが、
何故か、自動でファイルが生成されません。
調べても、設定が必要等言われてますが、
mac自体も初心者でほとんどわかりません。
どのような設定にすればいいのでしょうか?
また、ソースに何か悪い所があるのでしょうか?
お助けください。
ちなみに下記がソースです。
ーーーーーーーーーーーーーーーーーーーーーーーーーーーー
#!/usr/bin/perl
print "Content-type: text/html\n\n";
print "<HTML>\n";
print "<HEAD><TITLE>アクセスカウンタ</TITLE></HEAD>\n";
print " <BODY>\n";
print "<H1>test</H1><HR>\n";
if ( open ( FH , "count.txt")){
$cnt = <FH>;
close( FH );
$cnt++;
print"<CENTER>あなたは${cnt}人目の訪問者です。</CENTER>\n";
if ( open(FH, ">count.txt" )){
print FH $cnt;
close(FH);
}
else {
print "ファイルの書き込みオープンに失敗しました。\n";
}
}
else {
print "ファイルの書き込みオープンに失敗しました。\n";
}
print "</BODY>\n";
print "</HTML>\n";
__END__
ーーーーーーーーーーーーーーーーーーーーーーーーーー
お礼
なにかむちゃくちゃになってますね。勉強し直します。
補足
ご回答、ありがとう御座います。 上記ではできないんですね。 ただ、書き込み実験のためだけに #!/usr/bin/perl print "Content-type: text/html\n\n"; print "<HTML>\n"; print "<HEAD><TITLE>test</TITLE></HEAD>\n"; print " <BODY>\n"; print "<H1>test</H1><HR>\n"; open ( FH ,">tukuruzo.txt"); print FH "tukuruzo"; close ( FH ); print "</BODY>\n"; print "</HTML>\n"; __END__ と打ってみて、実験してみてるんですが、 これだけ単純に作っても、 テキストファイルが作成されないのです。 これはなぜなんでしょうか?