En primer lugar: Sabe que puede usar $ENV{myvariable}
para acceder a las variables de entorno, ¿no? Y que no necesita especificar $_
cuando usa m//
, s///
y tr///
?
Además, si quiere pasar variables a perl, hay otras maneras de hacerlo además de intentar interpolar variables de shell en su código perl.
perl -we 'my ($var1, $var2, $var3) = @ARGV;' "$MYFOO" "$BAR" "$baz"
Si las variables de su caparazón no contienen espacios en blanco, puede prescindir de las comillas.
Ahora, si desea utilizar los conmutadores -p
o -n
, también hay formas de evitarlo.
perl -pwe 'BEGIN { my $var1 = shift; my $var2 = shift } #code goes here'
"$MYFOO" "$BAR" file1 file2
Usando shift
en una instrucción BEGIN eliminará las variables de @ARGV
de modo que no son utilizados por el bucle implícita while
de los -p
y -n
interruptores.
Atención más cerca: no seas ridículo. Las preguntas de programación de Shell pertenecen a stackoverflow. – tchrist
No * necesita * utilizar la variable '$ _' allí. – TLP
@TLP - eso fue solo un ejemplo. En el guión real, realmente * lo * necesitaba. :) – Rogach