2010-08-18 10 views

Respuesta

15

Utilice la -t filetest operator.

print -t STDOUT ? "Yes\n" : "No\n" 

Nótese que en Perl, STDOUT puede ser atado (esencialmente un objeto sobrecargado demasiado complicado), de modo salida a stdout todavía puede alcanzar un TTY incluso si no es unido directamente a uno.

+1

IO :: Interactive muestra los casos especiales que es posible que desee considerar también. –

+0

¿Cómo de qué manera esta respuesta tiene un puntaje de +5, mientras que otra (anterior) con * exactamente * la misma respuesta tiene un puntaje de -1? – EMP

+0

@Evgeny Esa respuesta fue originalmente 'print -t 1? "sí \ n": "no \ n" '. El uso innecesario de un fileno lo compró downvotes. – Schwern

7

Utilice IO::interactive si necesita que STDOUT se conecte realmente al terminal y no solo se lo redirija a /dev/null/ o lo que sea.

Cuestiones relacionadas