• ベストアンサー

超初心者です

最近Perlの勉強を本をつかって始めたのですが、 最初の段階でつまずいています。 プログラムは #!/usr/bin/perl #プログラム:hello.pl print "Hello, world!\n"; という本当に実に単純なものなのですが、これをターミナルで実行しようとすると $ hello.pl bash: hello.pl: command not found と表示されてしまします。 $ perl hello.pl Hello, world! ではちゃんと動いています。 Perlの場所は $ find /usr -name perl /usr/bin/perl /usr/doc/db3-devel-3.2.9/ref/perl により間違っていないと思いますし、 chmod 755 hello.pl も行っています。 なにぶん初心者ですので何が他に理由でエラーになるのかわかりません。もしよろしければ、アドバイスをいただけるとうれしいです。 自分はVineLinux2.6を使っていてPerlのバージョンは5.006001です。

質問者が選んだベストアンサー

  • ベストアンサー
  • uninin
  • ベストアンサー率20% (26/129)
回答No.3

まず、rootになる必要はありません。 bashでしたら、PATH=$PATH:/hoge/huga したあとに、 % export PATH してください。まとめて、 % export PATH=$PATH:/hoge/huga でも構いません。printenvできちんと設定されてるか確認するのが良いと思います。

naokanak
質問者

お礼

なんとか"./"なしでもプログラムを実行することに成功しました。本当にありがとうございます。 しかし、大きな問題が最後に残りました。 printenv PATHで確認をするとこうなりました $ printenv PATH /usr/local/bin:/bin:/usr/bin:/usr/X11R6/bin:/home/naokanak/parl/bin:/home/naokanak/parl/bin:/home/naokanak/parl/bin:/home/naokanak/parl/bin:/home/naokanak/parl/bin 何回"perl"を"parl"と間違えているんでしょう…○| ̄|_ そして、このPATHの消し方がわかりません。 そしてPATHの追加もできません。 このままだとフォルダ名を"parl"としていないと動かないみたいです。 なんとか直す方法はないでしょうか? 自分のバカさ加減にちょっと笑ってしまいます。本当にすみません。

その他の回答 (3)

  • tatsu99
  • ベストアンサー率52% (391/751)
回答No.4

>このままだとフォルダ名を"parl"としていないと動かない>みたいです。 >なんとか直す方法はないでしょうか? .bashrcを正しく修正してください。(parl->perl) その後、ログアウトしてください。 再度ログインすると、正しくパスが修正されています。

naokanak
質問者

お礼

全て解決しました。本当にありがとうございました。

  • uninin
  • ベストアンサー率20% (26/129)
回答No.2

自分で把握している限りは、どこにpath通しても構わないでしょうね。 カレントディレクトリはころころ変わりますので、実行者が常にpathを 把握できないという点で危険です。

naokanak
質問者

お礼

たびたびありがとうございます。 アドバイス通りPATHを通そうと思ってnaokanakというユーザーの下にperlフォルダを作ってさらにbinというフォルダを作ってそこにプログラムを置いて".bashrc"に Path=$PATH:/home/naokanak/perl/bin という一文を加えました。 さらにrootになって #source .bashrc を実行して一般ユーザに戻ってもう一度実行すると $hello.pl bash: hello.pl: command not found という結果になりました。 これはPATHの設定が間違っているのでしょうか?それとも根本的にやりかたが違うのでしょうか? まともにPATHの設定もできなくてすみません。 助けていただけるとありがたいです。

  • uninin
  • ベストアンサー率20% (26/129)
回答No.1

pathが通ってる所にhello.plを置いてないからでは。 カレントディレクトリにあるのならば、 % ./hello.pl で実行できると思います。 "." にpathを通すことも出来ますが、安全を考えたらやめた方が無難です。

naokanak
質問者

お礼

アドバイスありがとうございます。 たしかに./hello.plで実行することができました。 さらにここで質問なのですが、"."にパスを通すのは確かに安全ではないのでやめようと思うのですが、ではいちいちrootになるのも面倒なので一般ユーザの下のどこかにPerl用のフォルダを作ってそこにパスを通すというのはどうなんでしょうか? それはやはり安全面からはよくないことなんでしょうか? 自分のパソコンの中でhtmlにCGIを組み合わせて実行する練習をしたいと思っているのでなんとか"./"を付けないで実行したいと考えています。 よろしくおねがいします。

関連するQ&A