Tecnología

Inicio

Cómo capturar la entrada estándar en Perl

Uno de los lemas de Perl es TIMTOWTDI (pronunciado "tim toady"). Es un acrónimo que significa "no hay más de una manera de hacerlo." Al igual que todo lo demás en Perl, hay muchas maneras de capturar la entrada estándar. Entre ellos se encuentra un acceso directo para leer todas las líneas en un archivo y hacer algo con ellos individualmente. Dado que esta es una acción común en los programas de filtro similar a Unix, se utiliza muy a menudo en los programas de Perl.

Instrucciones

1 Utilice el operador "ángulo". Perl tiene cuatro identificadores de archivo abiertos por defecto: stdin, stdout, stderr y datos, de los cuales STDIN es el manipulador de la entrada estándar, que se utiliza para capturar la entrada estándar.

2 Utilizar el operador ángulo de leer una sola línea desde el gestor de archivo que se ha pasado, y cualquiera de las tiendas en el defecto variable $ _ o utilizarlo como el lado derecho de una expresión de asignación. El operador "ángulo" es un gestor de archivo rodeado de menor que y mayor que símbolos, también conocida como "paréntesis angulares."
"$a = ;" "$a = ;"

3 Utilice el operador ángulo en un bucle while. El operador de soporte en ángulo debe ser la única cosa en la expresión lógica del bucle while al utilizar paréntesis angulares en un bucle while. Cada vez que se ejecuta el bucle while, que va a leer una línea y asignarla al

operador $. Cuando no hay más líneas para leer, el bucle while terminará:
"while( ) {
chomp; # Chomp the $
"while( ) {
chomp; # Chomp the $
"while( ) {
chomp; # Chomp the $
variables
impresión; # Imprime la variable $ _
} "

4 Asignar el operador de ángulo para una lista. Asignación de los resultados del operador de ángulo para una lista es como decir "almacenar todas las líneas de este gestor de archivo de esta lista." Cuando se asigna el operador ángulo a una lista, otro acceso directo se realiza que asigna todas las líneas de entrada a la lista:
"@my_list = ;" "@my_list = ;"

5 Se lee en el gestor de archivo STDIN usando la función de lectura. El soporte en ángulo lee sólo las líneas completas, y puesto que esto podría no ser lo que usted quiere hacer, la función de lectura le permitirá leer cualquier cantidad de bytes en una variable. Se necesitan tres parámetros: el gestor de archivo, la variable para almacenarlo en y el número de bytes a leer. El siguiente ejemplo lee 10 bytes en el buffer $:
"read(STDIN,$buffer,10);"

Consejos y advertencias

  • La asignación del operador de ángulo a una lista y utilizando el operador de ángulo en un bucle mientras que a menudo son llamados "sintaxis mágica", porque a veces no es obvio lo que hacen, pero lo hacen acciones muy comunes fácil.