-t Filehandle is opened to a tty. #### #!/usr/bin/perl use strict; use warnings; use feature qw( say ); use File::Basename; my $iam = basename($0); if (-t *STDIN) { my $nargs = @ARGV; say "Script '$iam' called from a terminal with $nargs arg(s):"; for (my $idx = 0; $idx < $nargs; $idx++) { printf " %2d. %s\n", $idx+1, $ARGV[$idx]; } } else { say "Script '$iam' is receiving input from a pipe"; } #### Script 'script' called from a terminal with 3 arg(s): 1. arg1 2. arg2 3. arg3 #### Script 'script' is receiving input from a pipe #### while () { say "Got input: $_"; }