La manera de descubrir cualquier código es separarlo. Sabes que las cosas entre paréntesis ocurren antes que las cosas afuera. Esta es la misma forma en que averiguaba qué código está haciendo en otros idiomas.
El primer bit es entonces:
(select(s), $|=1)
Esa lista tiene dos elementos, que son el resultado de dos operaciones: una para seleccionar el gestor de archivo s
como predeterminado entonces uno para ajustar $|
a un valor verdadero. El $|
es una de las variables por manejador de archivos que solo se aplica a la manejador de archivos seleccionada actualmente (consulte Understand global variables en The Effective Perler). Al final, usted tiene una lista de dos elementos: el anterior gestor de archivo por defecto (el resultado de select
), y 1.
La siguiente parte es una rebanada lista literal de sacar el elemento en el índice 0:
(PREVIOUS_DEFAULT, 1)[0]
El resultado de eso es el elemento único que es el identificador de archivo predeterminado anterior.
La siguiente parte toma el resultado de la división y lo utiliza como argumento a otra llamada a select
select(PREVIOUS_DEFAULT);
Así que, en efecto, que haya configurado un gestor de archivo $|
en y terminó de vuelta donde comenzó con el identificador de archivo predeterminado.
Para confundir y frustrar a las personas que tienen que mantener el código, es decir, usted. –