Name : perl-IO-Interactive
| |
Version : 1.022
| Vendor : openSUSE
|
Release : lp152.3.2
| Date : 2019-11-07 16:34:20
|
Group : Development/Libraries/Perl
| Source RPM : perl-IO-Interactive-1.022-lp152.3.2.src.rpm
|
Size : 0.02 MB
| |
Packager : https://bugs_opensuse_org
| |
Summary : Utilities for interactive I/O
|
Description :
This module provides three utility subroutines that make it easier to develop interactive applications...
* \'is_interactive()\'
This subroutine returns true if \'*ARGV\' and the currently selected filehandle (usually \'*STDOUT\') are connected to the terminal. The test is considerably more sophisticated than:
-t *ARGV && -t *STDOUT
as it takes into account the magic behaviour of \'*ARGV\'.
You can also pass \'is_interactive\' a writable filehandle, in which case it requires that filehandle be connected to a terminal (instead of the currently selected). The usual suspect here is \'*STDERR\':
if ( is_interactive(*STDERR) ) { carp $warning; }
* \'interactive()\'
This subroutine returns \'*STDOUT\' if \'is_interactive\' is true. If \'is_interactive()\' is false, \'interactive\' returns a filehandle that does not print.
This makes it easy to create applications that print out only when the application is interactive:
print {interactive} \"Please enter a value: \"; my $value = < >
You can also pass \'interactive\' a writable filehandle, in which case it writes to that filehandle if it is connected to a terminal (instead of writing to \'*STDOUT\'). Once again, the usual suspect is \'*STDERR\':
print {interactive(*STDERR)} $warning;
* \'busy {...}\'
This subroutine takes a block as its single argument and executes that block. Whilst the block is executed, \'*ARGV\' is temporarily replaced by a closed filehandle. That is, no input from \'*ARGV\' is possible in a \'busy\' block. Furthermore, any attempts to send input into the \'busy\' block through \'*ARGV\' is intercepted and a warning message is printed to \'*STDERR\'. The \'busy\' call returns a filehandle that contains the intercepted input.
A \'busy\' block is therefore useful to prevent attempts at input when the program is busy at some non-interactive task.
|
RPM found in directory: /vol/rzm3/linux-opensuse/ports/aarch64/distribution/leap/15.2/repo/oss/noarch |