web-dev-qa-db-ja.com

Perlを使用したMacでのBashエラーメッセージ

Perl(Mac)で基本的な機能を実行しようとしていますが、常に同じエラーメッセージが表示されます。単純な「hello、world」の例のようなプログラムを実行することができました。それらは正常に動作します:

$ Perl -w hello.pl
Hello World

しかし、変数に値を割り当てるなど、さまざまなことを試みると、次のようなメッセージが表示されます。

$number = 13*2;
-bash: =: command not found

Listなどのコマンドは機能しているようですが、常にbashエラーが発生します。パスに関連している可能性があることを読みましたが、これを正確に確認する方法と、bashがここで何をしているのかわかりません。

3
jose

あなたはbashとPerlを混同しているようです。 Macのデフォルトのシェルはbashであり、Perlと同じ方法で、または同じ構文を使用して変数を設定することはできません。 Perlを使用して「$ number」という変数を「13 * 2」の結果に設定するには、bashCLIで次のようにします。

my-macbook:~ $ Perl -e '$number = 13 * 2; print $number, "\n";'
26

Bash自体で同じことを行うには、次のことができます。

my-macbook:~ $ number=$(expr 13 \* 2); echo $number
26

ターミナルで実行されているbashシェルはbash構文を想定しているため、ターミナルのbashシェルに生のPerl構文を挿入することはできません。 Bashはそれ自体がホールランゲージであり、Perlとは互換性がありません。 bashの代わりにPerlを使用してコードを実行することをbashに伝えるには、Perlの-eフラグ(executeのeのように)を使用してから、Perlコードを一重引用符で囲みます。

6
Tim Kennedy

bash(ターミナルエミュレーター内で実行されているシェル)で基本的な計算を行うには、次のいずれかの構成を使用します。 $プレフィックスは、変数の割り当てではなく、変数の値を取得するときにbashの変数で使用されます。

my_product=$(( 13 * 2 ))
my_product=$[ 13 * 2 ]
echo $my_product

すでに述べたように、Perlbashではないため、適切な構文と適切な言語を使用する必要があります。

3
user13742