Tecnología

Inicio

Perl Cada vs. Foreach

Perl Cada vs. Foreach


Un lenguaje de programación contiene funciones, variables y estructuras de control. biblioteca de funciones de Perl contiene el "cada" función. Uno de sus comandos estructura de control se llama foreach. El hecho de que se trata de una función y la otra es una estructura de mando de control significa que hay una diferencia fundamental en la forma en que los dos se invocan, a pesar de una pequeña similitud en su uso.

Estructura de parámetros

El "uno" función realiza una tarea cada vez que se llama, y ​​devuelve dos valores. La función opera en una tabla hash que contiene una etiqueta (llamada una "llave") y un valor. En una tabla con una lista como Nombre: Julie, Edad: 45, Job: Singer, el "uno" función devuelve "Nombre" y "Julie" la primera vez que se llama. Por lo que los datos sobre los que opera el "cada" función tiene que tener una estructura que incluye pares clave / valor.

El comando "foreach" es una estructura iterativa. Opera sobre una matriz, que es una lista de elementos recta, sin llaves. Un ejemplo de tal matriz sería Bob, Pete, Jane, Dawn, en una matriz denominada "nombres".

Alcance

Las funciones se ejecutan una vez cada vez que se les llama. Por lo general, dejan el estado de sus parámetros como estaban cuando fueron llamados. "Cada" es diferente en este sentido, ya que avanza el puntero que indica el elemento actual en la tabla hash que recibe como parámetro. Esto significa que cada vez que se invoca la función, devolverá el siguiente par en la lista. Una vez que se ha alcanzado el final de la lista, la próxima informa los valores en blanco. El tiempo después de que, informa del primer elemento en la tabla. El constructo "foreach" devuelve el puntero a su posición original en el primer elemento de la matriz. las posteriores llamadas a "foreach", si se utiliza la misma matriz, comenzarán nuevo desde el principio.

Proceso

El "foreach" construcción de obras a través de los elementos de una matriz hasta que se ha procesado el último elemento. El comando es seguido por los soportes que contienen todas las instrucciones para llevar a cabo en cada elemento de la matriz. Al igual que el "cada" función, que avanza el puntero en la matriz al siguiente elemento. Sin embargo, "cada uno" tiene que ser llamado para cada elemento en la tabla, mientras que "foreach" bucle a través de cada elemento de forma automática hasta que llega al final de la matriz.

Progresión

El "uno" función no crea una estructura de programa. Se apoya en otros comandos para asegurarse de que se invoca las veces suficientes para procesar todos los registros en una tabla hash dado. Tiene que ser incluidos en las instrucciones ejecutadas dentro de un bucle. El comando "foreach" es una de las construcciones que proporcionan la "cada" función con el mecanismo de bucle que carece.