Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

perl -e halluciné :)

2 réponses
Avatar
Francois Wisard
J'ai des problémes avec mes one-liners depuis que je suis sous FreeBSD
5.1. (perl 5.6.1). Perl me donne systématiquement des erreurs
"farfelues". Un exemple:

bash-2.05b$ perl -e "$_="abc";s/b/c/g;print $_"
Undefined subroutine &main::ls called at -e line 1.

ou

bash-2.05b$ perl -e "@a=('a'..'z');print $#a"
Bareword found where operator expected at -e line 1, near "0a"
(Missing operator before a?)
syntax error at -e line 1, next token ???

ou encore

bash-2.05b$ perl -e "@a=('a'..'z');print $a[5]"
ARRAY(0x810115c)bash-2.05b$

Quelqu'un pourrait me dire se qu'il se passe? :) J'en ai marre de devoir
créér des fichiers juste pour des one-liners...

Francois


--
If you're really into astrology, tell me, what happens
when Mercury is in the Fish, and Jupiter enters the Virgin?

2 réponses

Avatar
Ronan Le Hy
Francois Wisard a écrit:
bash-2.05b$ perl -e "$_="abc";s/b/c/g;print $_"
Undefined subroutine &main::ls called at -e line 1.
ou
[...]

Quelqu'un pourrait me dire se qu'il se passe? :) J'en ai marre de devoir
créér des fichiers juste pour des one-liners...


Ton shell interpole lui-même les variables avec des $ entre doubles
guillemets. Utilise des guillemets simples:

perl -e '$_="abc";s/b/c/g;print $_'

HTH

--
Ronan

Avatar
Laurent Wacrenier
Ronan Le Hy écrit:
Ton shell interpole lui-même les variables avec des $ entre doubles
guillemets. Utilise des guillemets simples:

perl -e '$_="abc";s/b/c/g;print $_'


et si on voulait utiliser des apostrophes :

perl -le '$_ = q/abc/; s/b/c/g; print'