if (-t STDIN && -t STDOUT) {
print "Enter an integer: ";
}
####
my $count = <>;
##
##
sub is_interactive {
return -t *ARGV && -t *STDOUT;
}
# and later...
if (is_interactive()) {
print $PROMPT;
}
##
##
-t *ARGV
##
##
sub is_interactive {
# Not interactive if output is not to terminal...
return 0 if not -t *STDOUT;
# If *ARGV is opened, we're interactive if...
if (openhandle *ARGV) {
# ...it's currently opened to the magic '-' file
return -t *STDIN if $ARGV eq '-';
# ...it's at end-of-file and the next file is the magic '-' file
return @ARGV>0 && $ARGV[0] eq '-' && -t *STDIN if eof *ARGV;
# ...it's directly attached to the terminal
return -t *ARGV;
}
# If *ARGV isn't opened, it will be interactive if *STDIN is attached
# to a terminal and either there are no files specified on the command line
# or if there are one or more files and the first is the magic '-' file
return -t *STDIN && (@ARGV==0 || $ARGV[0] eq '-');
}
# and later...
if (is_interactive()) {
print $PROMPT;
}
##
##
use IO::Interactive qw( is_interactive );
# and later...
if (is_interactive()) {
print $PROMPT;
}
##
##
use IO::Interactive qw( interactive );
# and later...
print {interactive} $PROMPT;