Re: Perlのスクリプトでパス指定について
( No.1 )
|
 |
- 日時: 2005/02/25 17:42
- 名前: stratix
-
クロエさん、こんにちわ。
>何故ハイフンを付加しなければならないのでしょうか?
これはもしかすると、改行コードが関係しているのかもしれないですね。 使用しているCGIはShift-JISで改行コードがCR+LFではないですか? Unix系OSの改行コードはLFなので、CGIも改行コードLFで記述されている ものとして実行されます。ところが、もしCGIが改行コードCR+LFで書かれて いたとすると、 #!/usr/bin/perl[CR][LF] となり、改行コードLFの前に不要なCRが入っていることになり、これが 原因でperlの起動に失敗しているのではないでしょうか。 ハイフンを入れることによって、 #!/usr/bin/perl -[CR][LF] となり、perlによって無効なオプションとして無視される形になるか、 起動引数として標準入力ストリームを指定した形になるか、どちらかは わかりませんがうまく動くのでしょう。
FTPで転送している場合はASCIIモードで転送すれば、改行コードが自動的に 変換されるので、試してみて下さい。
|
Re: Perlのスクリプトでパス指定について
( No.2 )
|
 |
- 日時: 2005/02/25 20:18
- 名前: PINE
-
スクリプトがaaa.cgiの場合
cat -v aaa.cgi として行末に"^M"が付いていたらstratixさんが仰るように改行コードがマズイです。 vsFTPDってディフォルトではアスキーモード不可になってまして いくらFFFTPとかでアスキーモードで転送しても改行コードが変換されません。 実は私もこれではまりました(汗)
|
Re: Perlのスクリプトでパス指定について
( No.3 )
|
 |
- 日時: 2005/02/26 00:17
- 名前: stratix
-
PINEさん、フォローありがとうございます。
>vsFTPDってディフォルトではアスキーモード不可になってまして >いくらFFFTPとかでアスキーモードで転送しても改行コードが変換されません。
あ、そうなんですか。それは知りませんでした(・・;) 私は昔から使い慣れてるProFTPDにすぐ入替えてしまうので、vsFTPDについては あまり知らないんですよ…。デフォルトでASCIIモード転送不可なんですね。 1つ勉強になりました。
クロエさんの問題の原因が、改行コードとまだ決まったわけではないですが この問題はFAQとして、こちらのサイトにも追加されてはいかがでしょう?>管理人様
|
Re: Perlのスクリプトでパス指定について
( No.4 )
|
 |
- 日時: 2005/02/26 17:34
- 名前: 管理者
-
クロエ様、stratix様、PINE様、こんにちは。
以前に別件で、メールでですが、Perlパスの後に"-"を付けて実行する方がいました。 その時は特に気にしていませんでしたが、CR+LFの問題かも知れないのですね・・・
私の方でも検証して確定した場合にはFAQとして載せさせていただきます。
|
Re: Perlのスクリプトでパス指定について
( No.5 )
|
 |
- 日時: 2005/02/28 09:34
- 名前: クロエ
<nazca@lemon.odn.ne.jp>
-
おはようございますヽ(∇⌒ヽ)(ノ⌒∇)ノ
昨晩は遅かったのであいさつできなかったのですが、土日に湯西川の方へ 遠出してまして報告遅れました。 Perlの件解決致しましたよヽ( ̄◇ ̄ヽ)
stratixさんの仰るとおり改行コードの問題でした、エディタはサクラエデ ィタ(クライアントはWin)を使っているのですが、一度望んでいない文字 コードで読み込んだ後に再読込(文字コード変換+改行コード変換)をかけて 保存すると前回の改行コードに戻ってしまいました。<多分バグ)(−ω−;)つ[ver1.3] 今は兼ねてクライアントでは改行コードを食べさせてから編集することにし て、特にDLする必要がないときはviを使っていこうと思いました。
# viクセはあるけど使いやすいですね
PINEさん、初期設定ではそうなんですよね_| ̄|○||| >実は私もこれではまりました(汗) 私も思いっきりはまりまくってますってヴァー(//^///)
それでは また、何かと質問するかと思いますが宜しくお願い致しますね(=^ー^=)
|