在 Mac 上使用 Perl 的 Bash 错误消息

jos*_*ose 3 bash perl macintosh

我正在尝试在 Perl (Mac) 上运行基本功能,但我一直收到相同的错误消息。我设法运行了像简单的“你好,世界”示例之类的程序。他们工作正常:

$ perl -w hello.pl
Hello World
Run Code Online (Sandbox Code Playgroud)

但是当我尝试不同的事情时,例如为变量赋值时,它会给我一条消息,例如:

$number = 13*2;
-bash: =: command not found
Run Code Online (Sandbox Code Playgroud)

list 之类的命令似乎有效,但我一直收到 bash 错误。我读到它可能与路径有关,但不确定如何准确验证这一点以及 bash 在这里做什么。

Tim*_*edy 6

您似乎将 bash 与 perl 混淆了。Mac 上的默认 shell 是 bash,它不能以与 perl 相同的方式或使用相同的语法设置变量。要使用 perl 将名为 '$number' 的变量设置为 '13 * 2' 的结果,在 bash CLI 上,您需要:

my-macbook:~ $ perl -e '$number = 13 * 2; print $number, "\n";'
26
Run Code Online (Sandbox Code Playgroud)

要在 bash 本身中做同样的事情,你可以:

my-macbook:~ $ number=$(expr 13 \* 2); echo $number
26
Run Code Online (Sandbox Code Playgroud)

您不能将原始 perl 语法放入终端中的 bash shell,因为在终端中运行的 bash shell 需要 bash 语法。Bash 本身就是一门完整的语言,与 perl 不兼容。要告诉 bash 您想使用 perl 而不是 bash 执行某些代码,您可以使用 Perl 的-e标志(如在 e 中表示执行),然后将您的 perl 代码用单引号括起来。

  • 嗨,何塞——如果这个回答帮助你解决了你的问题,不要忘记批准答案(在投票箭头下打勾) (3认同)