2013-09-24 13 views

Odpowiedz

14

W Perl, prowadzący badania -t pliku wskazuje, czy uchwyt pliku (w tym STDIN) jest połączony z zaciskiem.

Istnieje również operator testowy -p, który wskazuje, czy uchwyt do pliku jest podłączony do rury.

$ perl -e 'printf "term:%d, pipe:%d\n", -t STDIN, -p STDIN' 
term:1, pipe:0 
$ perl -e 'printf "term:%d, pipe:%d\n", -t STDIN, -p STDIN' < /tmp/foo 
term:0, pipe:0 
$ echo foo | perl -e 'printf "term:%d, pipe:%d\n", -t STDIN, -p STDIN' 
term:0, pipe:1 

Dokumentacja operatora testu pliku pod numerem perldoc -f -X.

+0

Bardzo miło! Dziękuję Ci. – barrycarter

6
use IO::Interactive qw(is_interactive); 

is_interactive() or warn "Being piped\n"; 
Powiązane problemy