mensagem de erro Bash em um mac usando Perl

3

Estou tentando executar funções básicas no Perl (Mac), mas recebo a mesma mensagem de erro o tempo todo. Eu consegui rodar programas como o simples exemplo 'hello, world'. Eles funcionam bem:

$ perl -w hello.pl
Hello World

Mas quando tento coisas diferentes, como atribuir um valor a uma variável, ele me envia uma mensagem como:

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

Comandos como a lista parecem funcionar, mas recebo o erro bash o tempo todo. Eu li que isso pode estar relacionado ao caminho, mas não tenho certeza de como exatamente verificar isso e o que o bash está fazendo aqui.

    
por jose 26.09.2012 / 14:20

2 respostas

6

Você parece estar confuso com o perl. O shell padrão no seu mac é o bash, que não pode definir variáveis da mesma maneira, ou usando a mesma sintaxe, como perl. Para definir uma variável chamada '$ number' para o resultado de '13 * 2 'usando perl, em uma bash CLI, você faria:

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

Para fazer a mesma coisa no bash, você poderia:

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

Você não pode colocar a sintaxe raw perl no seu shell bash no Terminal, porque o shell bash em execução no Terminal está esperando a sintaxe bash. Bash é uma linguagem inteira em si, e não é compatível com o perl. Para dizer ao bash que você quer executar algum código usando o perl ao invés do bash, use o flag -e do Perl (como em e para execute), então coloque o código perl entre aspas simples.

    
por 26.09.2012 / 15:12
3

Para fazer aritmética básica em bash (o shell rodando dentro do seu emulador de terminal) você usaria uma das seguintes construções. O prefixo $ é usado com variáveis em bash ao obter o valor das variáveis, não em sua atribuição:

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

Como já foi dito, perl não é bash , por isso, certifique-se de usar a sintaxe correta com o idioma correto.

    
por 26.09.2012 / 15:39