Algunas variables especiales se definen en el lenguaje Perl, generalmente con el prefijo $, @ o %, por ejemplo: $_.
Muchas variables especiales tienen un nombre largo en inglés. La variable del sistema operativo $! se puede escribir como $OS_ERROR.
Si desea utilizar variables especiales con nombres en inglés, debe agregar use English al principio del programa. Esto permite el uso de variables especiales descriptivas en inglés.
La variable especial más utilizada es $_, que contiene entrada predeterminada y contenido de coincidencia de patrones. Los ejemplos son los siguientes:
Al ejecutar el programa anterior, el resultado de salida es:
GoogleCoderctoTaobao
En los siguientes ejemplos no usamos $_ para generar contenido:
Al ejecutar el programa anterior, el resultado de salida es:
GoogleCoderctoTaobao
En el ejemplo, primero se genera "Google", luego se genera "Codercto" y finalmente se genera "Taobao".
En un bucle iterativo, la cadena del bucle actual se colocará en $_ y luego se enviará mediante impresión. Además, print no especifica una variable de salida y $_ se usa de forma predeterminada.
Aquí hay algunos lugares donde Perl asumirá $_ incluso si no se especifica:
Varias funciones unarias, incluidas funciones como ord() e int() y todas las operaciones de prueba de archivos ("-f", "-d") excepto "-t", que opera en STDIN de forma predeterminada.
Varias funciones de lista como print() y unlink().
Operaciones de coincidencia de patrones "m//", "s///" y "tr///" sin el operador "=~".
La variable de iteración predeterminada para los bucles "foreach" cuando no se proporcionan otras variables.
Variables de iteración implícitas para funciones grep() y map().
Cuando "mientras" tiene solo una condición y esa condición prueba el resultado de la operación "", $_ es la ubicación predeterminada para el registro de entrada. Esto no sucede excepto en condiciones de prueba "mientras". (Mnemónico: el guión bajo se puede omitir en determinadas operaciones).
Según la naturaleza del uso de variables especiales, se pueden dividir en las siguientes categorías:
Variable especial escalar global.
Variables especiales de matriz global.
Variable especial hash global.
Identificador de archivo especial global.
Constantes especiales globales.
Variables especiales de expresión regular.
Variable especial del identificador de archivo.
A continuación se enumeran todas las variables especiales escalares, incluidas las variables con caracteres especiales y formas en inglés:
$_ | Entrada predeterminada y contenido de coincidencia de patrones. |
$ARG | |
$. | El número de línea actual del identificador de archivo leído por última vez. |
$NR | |
$/ | Ingrese el separador de registros, que por defecto es un carácter de nueva línea. Si utiliza la variable undef, se leerá el final del archivo. |
$ RS | |
$, | Separador de campo de salida |
$OFS | |
$ | Separador de registros de salida |
$ORS | |
$" | Esta variable es similar a $, pero debe usarse para interpolar matrices y dividir valores en cadenas entre comillas dobles (o cadenas interpoladas similares). El valor predeterminado es un espacio. |
$LIST_SEPARATOR | |
$; | Delimitador utilizado al simular matrices multidimensionales. El valor predeterminado es " |