Softpedia
 


LINUX CATEGORIES:



GLOBAL PAGES >>
NEWS ARCHIVE >>
SOFTPEDIA REVIEWS >>
MEET THE EDITORS >>
WEEK'S BEST
  • Linux Kernel 3.9.3 / 3....
  • LibreOffice 3.6.6 / 4.0.3
  • MPlayer 1.1.1
  • systemd 204
  • Arch Linux 2013.05.01
  • Blender 2.67
  • KDE Software Compilatio...
  • CrunchBang Linux Stable...
  • Elementary OS 0.1 / 0.2...
  • SystemRescueCd 3.6.0
  • Home > Linux > Programming > Libraries

    IO::Interactive 0.0.3

    Download button

    No screenshots available
    Downloads: 393  View global page NEW!  Tell us about an update
    User Rating:
    Rated by:
    NOT RATED
    0 user(s)
    Developer:

    License / Price:

    Last Updated:

    Category:
    Damian Conway | More programs
    Perl Artistic License / FREE
    January 17th, 2007, 06:05 GMT
    ROOT / Programming / Libraries

     Read user reviews (0)  Refer to a friend  Subscribe

    IO::Interactive description

    IO::Interactive is a Perl module with utilities for interactive I/O.

    IO::Interactive is a Perl module with utilities for interactive I/O.

    SYNOPSIS

    use IO::Interactive qw(is_interactive interactive busy);

    if ( is_interactive() ) {
    print "Running interactivelyn";
    }

    # or...

    print {interactive} "Running interactivelyn";


    $fh = busy {
    do_noninteractive_stuff();
    }

    This module provides three utility subroutines that make it easier to develop interactive applications...

    is_interactive()

    This subroutine returns true if *ARGV and *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 *STDOUT). 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 writinbg 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.

    Product's homepage

    Requirements:

    · Perl

      


    TAGS:

    interactive I/O | I/O utilities | Perl module | IO::Interactive | interactive | I/O

    Go to top

    WindowsGamesDriversMacLinuxScriptsMobileHandheldNews

    SUBMIT PROGRAM   |   ADVERTISE   |   GET HELP   |   SEND US FEEDBACK   |   RSS FEEDS   |   UPDATE YOUR SOFTWARE   |   ROMANIAN FORUM