- 締切済み
perlでパスが通らない?
環境はwindowsXPです。 パスがうまく通っていないようです。perl.exeが入っているファイルへのパスは正常に働いているのに、自分で作ったファイルを置いているC:\documents and settings\user\my document\perlというファイルへのパスがうまくはたらきません(Can't open perl script "test.pl": No such file or directoryと表示されます) コマンドプロンプトで「path」を使ってみても上記のフォルダはちゃんとPathに記述されています(;も入っています)。 何がいけないのでしょうか?
- みんなの回答 (6)
- 専門家の回答
みんなの回答
- 神崎 渉瑠(@taloo)
- ベストアンサー率44% (1016/2280)
ANo.1と同じなんですが、 > (Can't open perl script "test.pl": No such file or directoryと表示されます) このメッセージを見ると、test.plが見つからないんだと思いますが? OSにパスを通すこと(OSの環境変数に登録する)と Perlにファイルの位置を教えること(perlの環境変数に登録する)を混同されているような気もしますが、、、
- noocyte
- ベストアンサー率58% (171/291)
> そもそもPATHの設定時は間違いのないようプロパティからコピペでやったので…。 パス名の方に問題がないとすると,PATH の設定方法に 間違いがあるのかもしれません. その切り分けをするために,一度,間違えようのない短くて単純な パス名 (C:\test など) を PATH に登録して試してみては? これでダメなら,PATH の設定方法に問題がありそうです. PATH の設定方法について念のために確認しますが, まさか一つのコマンドプロンプトで PATH を設定し, 別のコマンドプロンプトでその PATH 上のコマンドを 起動しようとしたりしてませんよね? > perl.exeの場所、実行ファイル(.pl)の場所も仰るとおりです。 > 両方のファイルがあるディレクトリがPATH登録されています。 これは perl を実行しようとしているコマンドプロンプトで 確認したのでしょうか? 差し支えなければ,perl を実行する直前に path コマンドを 実行し,その出力を投稿していただけませんか? 支障がある部分は伏字にしていただいてもかまいませんが, その場合,半角英数字は別の半角英数字に,全角文字は別の 全角文字に置き換え,その他の記号などはそのままにしてください.
お礼
回答ありがとうございます。上述の理由から返事が遅れてしまいました、すみません。これから試行して補足させていただきます。皆さん付き合ってくださって本当にありがとうございます。
- sakusaker7
- ベストアンサー率62% (800/1280)
perl-s ではなく、perl -S (Sは大文字)ですが それは間違っていませんか? 大小文字どちらの文字もオプションとしてあるので、間違ってもエラーにはなりません。 それを確認していただいた上で、 スクリプトを置いているディレクトリに適当なバッチファイル を置き、別のディレクトリから起動できるか? → これが×ならPATHの内容がおかしい を確認していただけますか?
お礼
回答ありがとうございます。その後Perl以外の複数のトラブルに見舞われ、回答が遅れて申し訳ありませんでした。Perlも再インストールする羽目になり、これからやり直したいと思います。perl -Sは早速試しましたが×でした…。PATHを確認してみます。
- noocyte
- ベストアンサー率58% (171/291)
> C:\documents and settings\user\my document ここに何か実行ファイルを (必要ならば改名して) コピーしてみて, それが起動できなければ PATH の設定が間違っていると思われます. > C:\documents and settings\user\my document\perlというファイルへのパス まさかまさか "my documentS" の S が抜けているというオチでは….
補足
解答ありがとうございます。 お教えいただいた方法は試した(というか、それがうまくいかなくて不具合に気づいた)のですがやはりダメみたいです。 Sについて、言われてちょっと焦りましたが何度も確認したのでやはりあってました。documentsやsettingsもです笑。そもそもPATHの設定時は間違いのないようプロパティからコピペでやったので…。というわけで。PATHの設定に問題が無いのに今のようなじょうたいです。 実はmy documentsの下層さらに2段したのファイルにPATHを通したいのですが、あんまり深いと無理とかって無いですよね…。
- sakusaker7
- ベストアンサー率62% (800/1280)
確認なんですが、たとえば perl.exe が c:\perl\bin にあって、実行しようとしているPerlスクリプトが c:\documents and settings\user\my document\perl にあり さらにカレントディレクトリは別のところにあって、 perl.exeのあるディレクトリとスクリプトのあるディレクトリが 環境変数PATHに登録されているということでよろしいですか? 拡張子の関連付けをしていないのであれば、 perl -S スクリプト名 でどうでしょうか?
補足
補足します。 perl.exeの場所、実行ファイル(.pl)の場所も仰るとおりです。 両方のファイルがあるディレクトリがPATH登録されています。 仰るようにperl-s example.pl(ファイルの一つ)としてみましたが、やはり存在しないという事でした。
- noocyte
- ベストアンサー率58% (171/291)
ActivePerl ですか? コマンドプロンプトで perl test.pl と入力してそうなっているんでしょうか? だとしたら perl の引数に PATH は関係ない (無視される) と思います. PATH が効くようにしたいのであれば,環境変数 PATHEXT に .pl を追加すれば, test だけで test.pl が起動されるようになるはずです. (普通に ActivePerl をインストールして .pl に perl.exe が関連付けられていれば.)
お礼
解答ありがとうございます。 お教えいただいた方法で.plを追加しましたが、解決には至りませんでした。 補足させていただきます。
補足
perl test.pl→ファイルがありません。 PATHEXT追加後に test→ファイル無し perl test→ファイル無し perl test.pl→ファイル無し となりました(一番上は意味無いですね;)。ファイルの場所が読めてない気がしていましたが違うのでしょうか・・・。
お礼
回答ありがとうございます。正直、おっしゃる事の意味がわからないので混同している気がします。 コントロールパネル>システム>詳細設定>環境変数>PATH にC:\...を追加することしかしていませんが、これはOSにパスを通しているという認識で間違いないでしょうか?