※ ChatGPTを利用し、要約された質問です(原文:プログラミング初心者です。)
Perlのプログラム実行方法と検索パス設定について
このQ&Aのポイント
Perlでプログラムを実行する際の正しい方法として、ファイルの一番先頭に「#! perlのフルパス」を入れることがあります。
実行する前には実行権限を与えるために「chmod a+x ファイル名」というコマンドを実行します。
検索パスがファイルを格納しているフォルダに通っていない場合、@INCに検索パスを加えることができますが、ターミナルで実行する方法が正しいか不明です。
プログラミング初心者です。
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
となってしまいます。
これはどのように実行するのが正しいのでしょうか?
基本的な知識が乏しくてすみませんがお願いします。
お礼
ご丁寧にありがとうございました。
補足
>・bash等のB-sh系 >PERL5LIB=~(=の前後に空白を入れないこと) >export PERL5LIB これで@INCには追加されました。ありがとうございます。 しかし、まだファイル名だけでは実行されません。 >ただ、この環境変数は、Perlのスクリプトで use [モジュール] とした時等に、そのモ >ジュールを探すパスを設定するものなので、bashのcommand not foundとは無関係です。 このことがイマイチ理解できません。 「bashのcommand not foundとは無関係」とはどういうことでしょうか? シェルの基本的な知識も乏しい為、これから調べてみます。