Linux workstation

Upstream software project

libio-interactive-perl

Utilities for interactive I/O

About libio-interactive-perl

Utilities for interactive I/O

This project links 9 native package records across 7 recorded operating-system releases. Compare the retained versions and architectures below, then open the package for your own release.

These are catalog observations, not a guarantee of installation, compatibility, or upstream support.

Project pictures and package coverage

Debian 12 (Bookworm): 1 package records; Debian 13 (Trixie): 1 package records; Fedora 43: 2 package records; Fedora 44: 2 package records; openSUSE Leap 15.6: 1 package records; openSUSE Leap 16.0: 1 package records; openSUSE Tumbleweed: 1 package records. Catalog coverage diagram, not an application screenshot.libio-interactive-perl: recorded package coverageDebian 12 (Bookworm)1 recordsDebian 13 (Trixie)1 recordsFedora 432 recordsFedora 442 recordsopenSUSE Leap 15.61 recordsopenSUSE Leap 16.01 recordsopenSUSE Tumbleweed1 records
OpenFactory diagram of linked package records. It is not an application screenshot.

Project identity

Project
libio-interactive-perl
Publisher
Not authoritatively mapped
Native package records
9
Operating systems
debian-12, debian-13, fedora-43, fedora-44, opensuse-leap-15-6, opensuse-leap-16-0, opensuse-tumbleweed
License expression
Artistic-2.0
Metadata completeness
100/100 (not a software quality rating)
Source repository
Not reported

Source-reported description

The fullest retained description is shown with its source. Distribution packaging descriptions may include downstream details.

This module provides three utility subroutines that make it easier to develop interactive applications. The 'ARGV' filehandle, the one that '<>' or an empty 'readline()' uses, has various magic associated with it. It's not actually opened until you try to read from it. Checking '-t ARGV' before you've tried to read from it might give you the wrong answer. Not only that, you might not read from 'ARGV'. If the value in '@ARGV' is the magic filename '-' (a convention to mean the standard filehandle for input or output), 'ARGV' might actually be 'STDIN'. You don't want to think about all of this. This module is discussed in _Perl Best Practices_ on page 218. Also see the 'ARGV' entry in perlvar and the 'readline' entry in perlfunc. * '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; } Note that 'is_interactive' may return true in a Windows Scheduled Task. See Github #6 (https://github.com/briandfoy/io-interactive/issues/6). * '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.

Description source

Packages by operating system

Compare recorded versions, then open a package for dependency, file, checksum, and repository evidence. Version strings are distribution-specific, not a ranking of newer software.

Debian 12 (Bookworm)

  1. libio-interactive-perl

    Debian 12 (Bookworm) / perl

    1.023-2

    utility module for interactive I/O

    allbookworm

Debian 13 (Trixie)

  1. libio-interactive-perl

    Debian 13 (Trixie) / perl

    1.027-1

    utility module for interactive I/O

    alltrixie

Fedora 43

  1. perl-IO-Interactive

    Fedora 43 / Unspecified / source perl-IO-Interactive

    1.027-2.fc43

    Utilities for interactive I/O

    noarch43
  2. perl-IO-Interactive-tests

    Fedora 43 / Unspecified / source perl-IO-Interactive

    1.027-2.fc43

    Tests for perl-IO-Interactive

    noarch43

Fedora 44

  1. perl-IO-Interactive

    Fedora 44 / Unspecified / source perl-IO-Interactive

    1.027-3.fc44

    Utilities for interactive I/O

    noarch44
  2. perl-IO-Interactive-tests

    Fedora 44 / Unspecified / source perl-IO-Interactive

    1.027-3.fc44

    Tests for perl-IO-Interactive

    noarch44

openSUSE Leap 15.6

  1. perl-IO-Interactive

    openSUSE Leap 15.6 / Unspecified / source perl-IO-Interactive

    1.025-bp156.1.1

    Utilities for interactive I/O

    noarchleap-15.6

openSUSE Leap 16.0

  1. perl-IO-Interactive

    openSUSE Leap 16.0 / Unspecified / source perl-IO-Interactive

    1.025-bp160.1.11

    Utilities for interactive I/O

    noarchleap-16.0

openSUSE Tumbleweed

  1. perl-IO-Interactive

    openSUSE Tumbleweed / Unspecified / source perl-IO-Interactive

    1.27.0-1.5

    Utilities for interactive I/O

    noarchtumbleweed

Project resources and further reading

Mapping provenance

Only source-backed identity signals create public cross-OS links. A reviewer can later approve or dispute an inferred relationship without rewriting native package history.

No field-level source record is published yet.