• 締切済み

プログラミング初心者です。

プログラミング初心者です。 MACを使用しています。 Perlでプログラムを実行する際に、 % perl ファイル名 とせずに % ファイル名 とする方法としてファイルの一番先頭に % #! perlのフルパス を入れると本に書いてあります。その際、実行する前に % chmod a+x ファイル名 で実行権限を与える、とありました。 実際にやってみると -bash: ファイル名: command not found となってしまいます。 そこでperlのフルパスが間違いなのかとperlのヴァージョンを調べる方法 % perlのフルパス -v を実行するとちゃんとヴァージョン名が出ます。 あとは検索パスがファイルを格納しているフォルダに通っていないからだと思うのです。@INCに検索パスをあらかじめ加えるには % setenv PERL5LIB 加えたいパス で出来るようですが、ターミナルで実行しても Can't open perl script "setenv": No such file or directory となってしまいます。 これはどのように実行するのが正しいのでしょうか? 基本的な知識が乏しくてすみませんがお願いします。

みんなの回答

  • John_Papa
  • ベストアンサー率61% (1186/1936)
回答No.2

あっ こっちの問題かな? Linuxか何かのシェルでは カレントディレクトリの実行ファイルを実行するには ./ファイル名 と、カレントディレクトリを明示する ドット スラッシュをファイル名の前につける必要があります。

  • John_Papa
  • ベストアンサー率61% (1186/1936)
回答No.1

#! perlのフルパス の後に少なくとも改行を二つ置いて、プログラム本文を始める(空改行もしくはコメント行を置く)事と perlの実行者=ファイルの所有者とは限らないので パーミッション変更は % chmod 705 ファイル名 もしくは % chmod 755 ファイル名 でやってみたら?

関連するQ&A

  • プログラミング初心者です。

    プログラミング初心者です。 MACを使用しています。 Perlでプログラムを実行する際に、 % perl ファイル名 とせずに % ファイル名 とする方法としてファイルの一番先頭に % #! perlのフルパス を入れると本に書いてあります。その際、実行する前に % chmod a+x ファイル名 で実行権限を与える、とありました。 実際にやってみると -bash: ファイル名: command not found となってしまいます。 そこでperlのフルパスが間違いなのかとperlのヴァージョンを調べる方法 % perlのフルパス -v を実行するとちゃんとヴァージョン名が出ます。 あとは検索パスがファイルを格納しているフォルダに通っていないからだと思うのです。@INCに検索パスをあらかじめ加えるには % setenv PERL5LIB 加えたいパス で出来るようですが、ターミナルで実行しても Can't open perl script "setenv": No such file or directory となってしまいます。 これはどのように実行するのが正しいのでしょうか? 基本的な知識が乏しくてすみませんがお願いします。

    • ベストアンサー
    • Perl
  • シェルスクリプトの1行目に#!を書いてもダメなのはなぜ?

    test.shというシェルスクリプトを #!/bin/bash echo "bash test" のように書き、chmod +x test.shを実行し、 test.shと入力すると、bash testが表示されるはずですが、 エラーbash: test.sh :command not found が出ます。which bashでパスを見ると /bin/bashなので、問題ないはずなんですが。 ちなみに、bash test.shと入力すると、正常に実行されます。 同様のことがperlスクリプト #!/usr/bin/perl print "perl test\n"; についても起こります。 何か設定がまずいのでしょうか? RedHatLinux7.2を使用しています。

  • 超初心者です

    最近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です。

    • ベストアンサー
    • Perl
  • .cshrcでのエラー

    シェル初心者です。 現在、さくらのレンタルサーバで.cshrcの設定を行っています。 os :FreeBSD 9.1 64bit Perl : Ver.5.8.9です。 http://d.hatena.ne.jp/perlcodesample/touch/20101027/1278596435を参考にして .cshrc内に setenv PERL5LIB /home/hogehoge/local/lib/perl5:/home/hogehoge/local/lib/perl5/site_perl:$HOME/perl5/lib/perl5:$PERL5LIB; # @@ Added by CPAN local setup tool @@ setenv PERL_CPANM_OPT="--local-lib=~/perl5"; という記述を追加しましたが % source .cshrcを実行すると setenv: Variable name must contain alphanumeric characters. というエラーが出ます。 何やら変数名をアルファベットで書けと言っているようですが、 #setenv PERL_CPANM_OPT="--local-lib=~/perl5"; というようにこの一行をコメントアウトするとエラーは出ません。 どこがまずいのでしょうか? 初歩的な質問で恐縮ですが、宜しくご教授お願いいたします。

  • PERLのインストール

    PERLのインストールの際、インストール先をOSの入っているドライブにしなければ正常に機能しないのでしょうか?WIN98でPERLをインストールすると自動的にDドライブにインストールされてしまいます。そしてごく簡単なスクリプトを実行してみてもcan't find [ファイル名」,no such file ~としか表示されません。 またファイルを保存する場所はどこでもいいのでしょうか? ちなみにperl -vでは正常にバージョン情報など見ることはできます。 なにぶん初心者なもので、うまく説明できているかどうか解りませんが、よろしくお願いします。

    • ベストアンサー
    • Perl
  • @INCにrequireされたファイルが無い

    自作のCGIを実行したところ Can't locate BASE64 in @INC (@INC contains: C:/Perl/site/lib C:/Perl/lib .) at g etHTTP line 71. のようなエラーが出ます。 BASE64がインストールされているかどうか確認するために、次のサイトのcheck.cgiを実行してみました。 http://perl.shtml.jp/check/check.html インストールされているということなので、検索を掛けてBase64.pmのパスを調べました。 C:\Perl\lib\MIME そこで以下のコードを追加して実行しなおしました。 unshift @INC, "C:/Perl/lib/MIME"; 残念ながらうまく動きませんでした。 Can't locate BASE64 in @INC (@INC contains: C:/Perl/lib/MIME C:/Perl/site/lib C: /Perl/lib .) at getHTTP line 71. どうすれば良いでしょう。 お手数をお掛けします。

    • ベストアンサー
    • Perl
  • perl初心者です。検索パスについて

    プログラム経験0の素人初心者ですが技術者向けの方が詳しい方がいらっしゃるかとこちらに書き込みしました。 perlを覚えようと本を買ってきましたが初めからつまづいてしまいました。 環境  winXP HomeEdition sp1 使用ソフト  cygwin  Poderosa(ターミナルエミュレーター) ホームディレクトリの設定と位置  設定「/cygdrive/c/myfolder」  位置「C:\myfolder」 本に書いてあったとおりに、以下のようにファイルを作り、myfolderに保存しました。 ファイル名:calc 中身:以下の通り #!usr/local/bin/perl print("2*3="); print(2*3); print("\n"); Poderosaでcygwinを起動し、 perl calcと打つと 2*3=6と返してくれるのですが、 chmod a+x calc calc と打つとウィンドウズ付属の電卓が起動してしまいます。 ファイル名をtest、中身をprint("test"); 等にした場合には、command not found となってしまいます。 検索パスの設定をしてない為かもしれませんが、検索パスの指定の仕方がわからず困っています。 システムの環境変数のPathの所でどう指定すればいいのでしょう。 どうぞアドバイス宜しくお願いします。

  • 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のファイルを実行できるのですか? 教えて下さい。よろしくお願いします。

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

専門家に質問してみよう