• 締切済み

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に記述されています(;も入っています)。 何がいけないのでしょうか?

  • Perl
  • 回答数6
  • ありがとう数5

みんなの回答

回答No.6

ANo.1と同じなんですが、 > (Can't open perl script "test.pl": No such file or directoryと表示されます) このメッセージを見ると、test.plが見つからないんだと思いますが? OSにパスを通すこと(OSの環境変数に登録する)と Perlにファイルの位置を教えること(perlの環境変数に登録する)を混同されているような気もしますが、、、

jinny6202
質問者

お礼

回答ありがとうございます。正直、おっしゃる事の意味がわからないので混同している気がします。 コントロールパネル>システム>詳細設定>環境変数>PATH にC:\...を追加することしかしていませんが、これはOSにパスを通しているという認識で間違いないでしょうか?

  • noocyte
  • ベストアンサー率58% (171/291)
回答No.5

> そもそもPATHの設定時は間違いのないようプロパティからコピペでやったので…。 パス名の方に問題がないとすると,PATH の設定方法に 間違いがあるのかもしれません. その切り分けをするために,一度,間違えようのない短くて単純な パス名 (C:\test など) を PATH に登録して試してみては? これでダメなら,PATH の設定方法に問題がありそうです. PATH の設定方法について念のために確認しますが, まさか一つのコマンドプロンプトで PATH を設定し, 別のコマンドプロンプトでその PATH 上のコマンドを 起動しようとしたりしてませんよね? > perl.exeの場所、実行ファイル(.pl)の場所も仰るとおりです。 > 両方のファイルがあるディレクトリがPATH登録されています。 これは perl を実行しようとしているコマンドプロンプトで 確認したのでしょうか? 差し支えなければ,perl を実行する直前に path コマンドを 実行し,その出力を投稿していただけませんか? 支障がある部分は伏字にしていただいてもかまいませんが, その場合,半角英数字は別の半角英数字に,全角文字は別の 全角文字に置き換え,その他の記号などはそのままにしてください.

jinny6202
質問者

お礼

回答ありがとうございます。上述の理由から返事が遅れてしまいました、すみません。これから試行して補足させていただきます。皆さん付き合ってくださって本当にありがとうございます。

  • sakusaker7
  • ベストアンサー率62% (800/1280)
回答No.4

perl-s ではなく、perl -S (Sは大文字)ですが それは間違っていませんか? 大小文字どちらの文字もオプションとしてあるので、間違ってもエラーにはなりません。 それを確認していただいた上で、 スクリプトを置いているディレクトリに適当なバッチファイル を置き、別のディレクトリから起動できるか? → これが×ならPATHの内容がおかしい を確認していただけますか?

jinny6202
質問者

お礼

回答ありがとうございます。その後Perl以外の複数のトラブルに見舞われ、回答が遅れて申し訳ありませんでした。Perlも再インストールする羽目になり、これからやり直したいと思います。perl -Sは早速試しましたが×でした…。PATHを確認してみます。

  • noocyte
  • ベストアンサー率58% (171/291)
回答No.3

> C:\documents and settings\user\my document ここに何か実行ファイルを (必要ならば改名して) コピーしてみて, それが起動できなければ PATH の設定が間違っていると思われます. > C:\documents and settings\user\my document\perlというファイルへのパス まさかまさか "my documentS" の S が抜けているというオチでは….

jinny6202
質問者

補足

解答ありがとうございます。 お教えいただいた方法は試した(というか、それがうまくいかなくて不具合に気づいた)のですがやはりダメみたいです。 Sについて、言われてちょっと焦りましたが何度も確認したのでやはりあってました。documentsやsettingsもです笑。そもそもPATHの設定時は間違いのないようプロパティからコピペでやったので…。というわけで。PATHの設定に問題が無いのに今のようなじょうたいです。 実はmy documentsの下層さらに2段したのファイルにPATHを通したいのですが、あんまり深いと無理とかって無いですよね…。

  • sakusaker7
  • ベストアンサー率62% (800/1280)
回答No.2

確認なんですが、たとえば perl.exe が c:\perl\bin にあって、実行しようとしているPerlスクリプトが c:\documents and settings\user\my document\perl にあり さらにカレントディレクトリは別のところにあって、 perl.exeのあるディレクトリとスクリプトのあるディレクトリが 環境変数PATHに登録されているということでよろしいですか? 拡張子の関連付けをしていないのであれば、 perl -S スクリプト名 でどうでしょうか?

jinny6202
質問者

補足

補足します。 perl.exeの場所、実行ファイル(.pl)の場所も仰るとおりです。 両方のファイルがあるディレクトリがPATH登録されています。 仰るようにperl-s example.pl(ファイルの一つ)としてみましたが、やはり存在しないという事でした。

  • noocyte
  • ベストアンサー率58% (171/291)
回答No.1

ActivePerl ですか? コマンドプロンプトで perl test.pl と入力してそうなっているんでしょうか? だとしたら perl の引数に PATH は関係ない (無視される) と思います. PATH が効くようにしたいのであれば,環境変数 PATHEXT に .pl を追加すれば, test だけで test.pl が起動されるようになるはずです. (普通に ActivePerl をインストールして .pl に perl.exe が関連付けられていれば.)

jinny6202
質問者

お礼

解答ありがとうございます。 お教えいただいた方法で.plを追加しましたが、解決には至りませんでした。 補足させていただきます。

jinny6202
質問者

補足

perl test.pl→ファイルがありません。 PATHEXT追加後に test→ファイル無し perl test→ファイル無し perl test.pl→ファイル無し となりました(一番上は意味無いですね;)。ファイルの場所が読めてない気がしていましたが違うのでしょうか・・・。

関連するQ&A

  • コマンドプロンプトからperlを実行できません

    エディターで作成した者を、ex1.plとtxt形式で保存し、それをコマンドプロンプトでperl ex1.plとやってもCan't open perl script;No such file or directory と出てきてしまいます。 この原因は、何なのでしょうか? ちなみに、コマンドプロンプトでやるとperl -vと打ちEnterを押すときちんとバージョン情報が出るので、ダウンロードはできていると思います。 ダウンロードしたのは、Active perl 5.8.7Build813で、現在XPを使っています。 プログラミング初心者なので、わかりにくい文章で申し訳ないですが、教えて下さい。

    • ベストアンサー
    • Perl
  • エディダソフトで作成のファイルをコマンドプロンプトで表示出来ない。

    perlの勉強を始めたばかりです。 エディダソフト Terapadをインストールし、perlのファイル ○○○.plを作成し、コマンドプロンプトで表示しようとしても、 そのファイルの1つ前のフォルダまでは行けますが、最後の.plファイルを表示させようとすると、 can't open perl script c:\documents :no such file or directory と表示が出て、命令できません。 どうすれは、エディダで作成した.plファイルを反応させることが出来るのでしょうか。  (perlはインストールしています。)  (apacheはインストールしていません。)

    • ベストアンサー
    • Perl
  • 初心者 Hello worldをしたい

    ActivePerl をインストールしました。 早速、Hello worldを表示させようと思うのですが メモ帳に「print "Hello world!!\n";」と記載して 「hello.pl」という名前で保存しました。 それをデスクトップにおきました。 その状態で コマンドプロンプトで「perl hello.pl」を実行しても Can't open perl script "hello.pl": No such file or directory (和訳:開いたperlは、「hello.pl」のスクリプトを書くことができません:そのようなファイルまたはディレクトリ) が返って来ます。 多分、デスクトップにおくのが間違いだと思うのですが どこに「hello.pl」を置いて 「perl hello.pl」を実行すればいいのでしょうか? ご教授よろしくお願い致します。

    • ベストアンサー
    • Perl
  • WindowsでPerlをする際,1行目の"#! ~"はどのように?

    Perlの参考書・本等ではプログラムファイルの第1行目は #! /usr/local/bin/perl という1行がよく有りますが,WindowsXPを用いている場合では,この1行をどう直せばよいのでしょうか? #! (perl.exeが存在するフォルダのパス) でよいのでしょうか? 私はWindowsXPを使っていて,この1行を使わずにプログラムを書いておりましたので,この1行の意味がよく分かりません。 ある参考書には,"#!はその行に書いたコマンドに,ファイルの残りの部分を渡して実行すると言う性質を持っている"と有りました。だから,試しにfile1.plとfile2.txtを準備し, file1.plの中身  #! (perlの存在するフォルダのパス)\perl.exe  while(<STDIN>){   print;  } file2.txtの中身  hello world として,コマンドプロンプトで file1.pl < file2.txt としたのですが正しく動作しませんでした.(perl file1.pl < file2.txt と入力した場合は正しく"hello world"となりました)

    • ベストアンサー
    • Perl
  • perlにパスを通す

    パスを通すのはAUTOEXEC.BATに定義を書くことだと思っていますがAUTOEXEC.BATにperlという文字は無いのに、MS-DOSプロンプトでperl -vで結果が表示されました。 perlの場合は普通のソフトと違って、特別なところでperl.exeのパスが定義されているのですか?

  • perlプログラムが動かない

    パールのプログラムを作成して拡張子「.pl」で保存するとアイコンがパールのマークになりますよね。 プログラムファイルにデータファイルをドラッグすると、プログラムファイル(拡張子.pl)のアイコンが白黒反転して、目的の加工データをファイルとして出力するプログラムがるのですが、プログラムを作成したパソコンともう一台しか動作しません。他のパソコンでは、プログラムファイルにデータファイルをドラッグしても、プログラムファイル(拡張子.pl)のアイコンが白黒反転せず、パールプログラムが動作しません。 どこの設定をどのように変更すればいいのでしょうか。(プログラムファイルのアイコンを白黒反転させるにはどうしたらいいのでしょうか。) コマンドプロンプトでパスが通っているか確認をしたのですが、どのパソコンもパスは通っています。 プログラムの動作するパソコンの「システム環境変数のpathとPATHEXT」をプログラムの動作しないパソコンにコピーペーストしてもNGでした。 ※perl.exeが入っているディレクトリは同じにしています。プログラムファイとデータファイルをperlフォルダに入れても駄目でした。  OSは、Windows XPです。

  • Perlの超初心者です。

    Perlの超初心者です。 mac osXを使っています。テキストエディットで、#! /usr/bin/perl print "hello world!\n";と書いてperl-test.plと保存しました。そしてターミナルを起動してperl-test.plとタイプしたのですが、-bash: perl-test.pl: No such file or directoryとなってしまいます。 試しにターミナルでperl -le "print 'hello world';"とタイプするとhello worldとかえってきました。 perl-test.plはfinderのデスクトップに保存してあります。いったいどうすればperl-test.plのファイルを実行できるのですか? 教えて下さい。よろしくお願いします。

  • perlから他のプログラムを動かす方法

    Windows XP環境で作業をしています。 コマンドプロンプトで、次のように動かすプログラムがあったとき、 今のディレクトリ>command file1 file2 file3 これをperlから呼び出したい(perlで実行させたい)のですが、どのように書けばいいのでしょうか。 調べるとパスという言葉がよく出てくるのですが、パスという言葉の意味もよくわかっていません; わかる方がいらっしゃいましたら、是非教えてください。 よろしくお願いします。

    • ベストアンサー
    • Perl
  • コマンドプロンプトについて

    コマンドプロンプトを起動させたときカレントディレクトリが C:>となっているのですが、これを C\Documents and Settings\xxxxx\My Document:>としてコマンドプロンプトを再起動したときにここに初めからカレントディレクトリとして設定したいのですがどうすれば出来るでしょうか。 教えてください

  • パールスクリプトを呼び出すときのパスの指定について

    わたしはあるインターネットのスクールに通っていたのですが パスについて頭が混乱しています。 CGIのコースのアクセスカウンターの授業で ディレクトリ構造が /usr/home/www/s1000000/cgi-bin/counter.pl となっているパールスクリプトをhtmlファイルのimgタグで呼び出すとき <img src="/usr/home/www/s1000000/cgi-bin/counter.pl?NAME=username&KETA=4">(その1) と記述したらうまく動作せず、 <img src="/~s1000000/cgi-bin/counter.pl?NAME=username&KETA=4">(その2) と訂正され、解決しました。 サーバのローカルルールでホームディレクトリのファイルは/~で呼びだせるように なっているようなのですが、それならば(その1)と(その2)は 同じことだと思うのです。 パスの相対指定はわかるのですが、絶対指定やurl指定がわかりません。 (その1)は絶対指定で(その2)はurl指定ということなのですか? (その1)と(その2)の違いは何ですか? なぜ(その1)では動作しないのですか? パスの根本的なところを知りたいです。 どなたか教えていただければ幸いです。

    • ベストアンサー
    • CGI

専門家に質問してみよう