- ベストアンサー
Requireできない...
requireされる側のファイルに、 $name = "A"; などと特定の文字A(仮に)を変数に代入しておくと、requireしたときにScript Errorになります。この1行というより、この文字Aを消すだけでエラーは解消されるのですが、これはどういう理由からでしょうか。 特殊な文字ではないので、よくわかりませんでした。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
以下のようなスクリプトをあなたの環境で実行してみてください。 ## -------------------------------- if($name = "A"){ print "A True\n"; }else{ print "A False\n";; } if($name = ""){ print "Null True\n";; }else{ print "Null False\n";; } ## -------------------------------- Perlの文法書なりを調べてみてください。 require関数は戻り値が真にならないとエラー(または続行不可)となります。 通常、その為に呼ばれる側のファイルの最後には「1;」を付けてください。
その他の回答 (1)
- Tacosan
- ベストアンサー率23% (3656/15482)
可能ならその「require される側のファイル」を全部載せてください.
お礼
回答ありがとうございます。 申し訳ありませんが、重要なファイルですのでおみせするわけにはいきませんが、例えば、次のようにしても結果は同じです。 [test.cgi] - 705 #!/usr/local/bin/perl print "Content-Type: text/html\n\n"; require "require.ini"; print "$name \n"; exit; [require.ini] - 644 $name = "A"; 1;
補足
突然すいません。 解決しました。どうやらシフトJIS文字の影響だったようです。 http://homepage2.nifty.com/sophia0/faq.html 入力フォームから自動で変数に代入するため、今後対策を考えます。 ありがとうございました。
お礼
回答ありがとうございます。 もちろん[1;]はつけています。 そのスクリプトを追加してみましたが、やはりScript Errorでした。