home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
PC World 2005 June
/
PCWorld_2005-06_cd.bin
/
software
/
vyzkuste
/
firewally
/
firewally.exe
/
framework-2.3.exe
/
SelectSaver.pm
< prev
next >
Wrap
Text File
|
2003-11-07
|
1KB
|
55 lines
package SelectSaver;
our $VERSION = '1.00';
=head1 NAME
SelectSaver - save and restore selected file handle
=head1 SYNOPSIS
use SelectSaver;
{
my $saver = new SelectSaver(FILEHANDLE);
# FILEHANDLE is selected
}
# previous handle is selected
{
my $saver = new SelectSaver;
# new handle may be selected, or not
}
# previous handle is selected
=head1 DESCRIPTION
A C<SelectSaver> object contains a reference to the file handle that
was selected when it was created. If its C<new> method gets an extra
parameter, then that parameter is selected; otherwise, the selected
file handle remains unchanged.
When a C<SelectSaver> is destroyed, it re-selects the file handle
that was selected when it was created.
=cut
require 5.000;
use Carp;
use Symbol;
sub new {
@_ >= 1 && @_ <= 2 or croak 'usage: new SelectSaver [FILEHANDLE]';
my $fh = select;
my $self = bless [$fh], $_[0];
select qualify($_[1], caller) if @_ > 1;
$self;
}
sub DESTROY {
my $this = $_[0];
select $$this[0];
}
1;