File | /opt/wise/lib/perl5/5.10.0/SelectSaver.pm | Statements Executed | 9 | Total Time | 0.000162 seconds |
Calls | P | F | Exclusive Time |
Inclusive Time |
Subroutine | |
---|---|---|---|---|---|---|
0 | 0 | 0 | 0 | 0 | SelectSaver:: | BEGIN |
0 | 0 | 0 | 0 | 0 | SelectSaver:: | DESTROY |
0 | 0 | 0 | 0 | 0 | SelectSaver:: | new |
Line | Stmts. | Exclusive Time | Avg. | Code |
---|---|---|---|---|
1 | package SelectSaver; | |||
2 | ||||
3 | 1 | 1.0e-6 | 1.0e-6 | our $VERSION = '1.01'; |
4 | ||||
5 | =head1 NAME | |||
6 | ||||
7 | SelectSaver - save and restore selected file handle | |||
8 | ||||
9 | =head1 SYNOPSIS | |||
10 | ||||
11 | use SelectSaver; | |||
12 | ||||
13 | { | |||
14 | my $saver = new SelectSaver(FILEHANDLE); | |||
15 | # FILEHANDLE is selected | |||
16 | } | |||
17 | # previous handle is selected | |||
18 | ||||
19 | { | |||
20 | my $saver = new SelectSaver; | |||
21 | # new handle may be selected, or not | |||
22 | } | |||
23 | # previous handle is selected | |||
24 | ||||
25 | =head1 DESCRIPTION | |||
26 | ||||
27 | A C<SelectSaver> object contains a reference to the file handle that | |||
28 | was selected when it was created. If its C<new> method gets an extra | |||
29 | parameter, then that parameter is selected; otherwise, the selected | |||
30 | file handle remains unchanged. | |||
31 | ||||
32 | When a C<SelectSaver> is destroyed, it re-selects the file handle | |||
33 | that was selected when it was created. | |||
34 | ||||
35 | =cut | |||
36 | ||||
37 | 1 | 1.8e-5 | 1.8e-5 | require 5.000; |
38 | 3 | 2.7e-5 | 9.0e-6 | use Carp; # spent 44µs making 1 call to Exporter::import |
39 | 3 | 0.00011 | 3.7e-5 | use Symbol; # spent 52µs making 1 call to Exporter::import |
40 | ||||
41 | sub new { | |||
42 | @_ >= 1 && @_ <= 2 or croak 'usage: new SelectSaver [FILEHANDLE]'; | |||
43 | my $fh = select; | |||
44 | my $self = bless \$fh, $_[0]; | |||
45 | select qualify($_[1], caller) if @_ > 1; | |||
46 | $self; | |||
47 | } | |||
48 | ||||
49 | sub DESTROY { | |||
50 | my $self = $_[0]; | |||
51 | select $$self; | |||
52 | } | |||
53 | ||||
54 | 1 | 4.0e-6 | 4.0e-6 | 1; |