| Filename | /home/micha/.plenv/versions/5.38.2/lib/perl5/5.38.2/FileHandle.pm |
| Statements | Executed 66 statements in 328µs |
| Calls | P | F | Exclusive Time |
Inclusive Time |
Subroutine |
|---|---|---|---|---|---|
| 1 | 1 | 1 | 11µs | 11µs | FileHandle::BEGIN@3 |
| 1 | 1 | 1 | 4µs | 8µs | FileHandle::BEGIN@46 |
| 1 | 1 | 1 | 4µs | 5µs | FileHandle::BEGIN@4 |
| 0 | 0 | 0 | 0s | 0s | FileHandle::import |
| 0 | 0 | 0 | 0s | 0s | FileHandle::pipe |
| Line | State ments |
Time on line |
Calls | Time in subs |
Code |
|---|---|---|---|---|---|
| 1 | package FileHandle; | ||||
| 2 | |||||
| 3 | 2 | 28µs | 1 | 11µs | # spent 11µs within FileHandle::BEGIN@3 which was called:
# once (11µs+0s) by Archive::Zip::BEGIN@12 at line 3 # spent 11µs making 1 call to FileHandle::BEGIN@3 |
| 4 | 2 | 70µs | 2 | 7µs | # spent 5µs (4+2) within FileHandle::BEGIN@4 which was called:
# once (4µs+2µs) by Archive::Zip::BEGIN@12 at line 4 # spent 5µs making 1 call to FileHandle::BEGIN@4
# spent 2µs making 1 call to strict::import |
| 5 | our($VERSION, @ISA, @EXPORT, @EXPORT_OK); | ||||
| 6 | |||||
| 7 | 1 | 300ns | $VERSION = "2.05"; | ||
| 8 | |||||
| 9 | 1 | 400ns | require IO::File; | ||
| 10 | 1 | 7µs | @ISA = qw(IO::File); | ||
| 11 | |||||
| 12 | 1 | 500ns | @EXPORT = qw(_IOFBF _IOLBF _IONBF); | ||
| 13 | |||||
| 14 | 1 | 1µs | @EXPORT_OK = qw( | ||
| 15 | pipe | ||||
| 16 | |||||
| 17 | autoflush | ||||
| 18 | output_field_separator | ||||
| 19 | output_record_separator | ||||
| 20 | input_record_separator | ||||
| 21 | input_line_number | ||||
| 22 | format_page_number | ||||
| 23 | format_lines_per_page | ||||
| 24 | format_lines_left | ||||
| 25 | format_name | ||||
| 26 | format_top_name | ||||
| 27 | format_line_break_characters | ||||
| 28 | format_formfeed | ||||
| 29 | |||||
| 30 | |||||
| 31 | printf | ||||
| 32 | getline | ||||
| 33 | getlines | ||||
| 34 | ); | ||||
| 35 | |||||
| 36 | # | ||||
| 37 | # Everything we're willing to export, we must first import. | ||||
| 38 | # | ||||
| 39 | 1 | 12µs | 1 | 70µs | IO::Handle->import( grep { !defined(&$_) } @EXPORT, @EXPORT_OK ); # spent 70µs making 1 call to Exporter::import |
| 40 | |||||
| 41 | # | ||||
| 42 | # Some people call "FileHandle::function", so all the functions | ||||
| 43 | # that were in the old FileHandle class must be imported, too. | ||||
| 44 | # | ||||
| 45 | { | ||||
| 46 | 3 | 168µs | 2 | 12µs | # spent 8µs (4+4) within FileHandle::BEGIN@46 which was called:
# once (4µs+4µs) by Archive::Zip::BEGIN@12 at line 46 # spent 8µs making 1 call to FileHandle::BEGIN@46
# spent 4µs making 1 call to strict::unimport |
| 47 | |||||
| 48 | 1 | 2µs | my %import = ( | ||
| 49 | 'IO::Handle' => | ||||
| 50 | [qw(DESTROY new_from_fd fdopen close fileno getc ungetc gets | ||||
| 51 | eof flush error clearerr setbuf setvbuf _open_mode_string)], | ||||
| 52 | 'IO::Seekable' => | ||||
| 53 | [qw(seek tell getpos setpos)], | ||||
| 54 | 'IO::File' => | ||||
| 55 | [qw(new new_tmpfile open)] | ||||
| 56 | ); | ||||
| 57 | 1 | 3µs | for my $pkg (keys %import) { | ||
| 58 | 3 | 900ns | for my $func (@{$import{$pkg}}) { | ||
| 59 | my $c = *{"${pkg}::$func"}{CODE} | ||||
| 60 | 22 | 9µs | or die "${pkg}::$func missing"; | ||
| 61 | 22 | 16µs | *$func = $c; | ||
| 62 | } | ||||
| 63 | } | ||||
| 64 | } | ||||
| 65 | |||||
| 66 | # | ||||
| 67 | # Specialized importer for Fcntl magic. | ||||
| 68 | # | ||||
| 69 | sub import { | ||||
| 70 | my $pkg = shift; | ||||
| 71 | my $callpkg = caller; | ||||
| 72 | require Exporter; | ||||
| 73 | Exporter::export($pkg, $callpkg, @_); | ||||
| 74 | |||||
| 75 | # | ||||
| 76 | # If the Fcntl extension is available, | ||||
| 77 | # export its constants. | ||||
| 78 | # | ||||
| 79 | eval { | ||||
| 80 | require Fcntl; | ||||
| 81 | Exporter::export('Fcntl', $callpkg); | ||||
| 82 | }; | ||||
| 83 | } | ||||
| 84 | |||||
| 85 | ################################################ | ||||
| 86 | # This is the only exported function we define; | ||||
| 87 | # the rest come from other classes. | ||||
| 88 | # | ||||
| 89 | |||||
| 90 | sub pipe { | ||||
| 91 | my $r = IO::Handle->new; | ||||
| 92 | my $w = IO::Handle->new; | ||||
| 93 | CORE::pipe($r, $w) or return undef; | ||||
| 94 | ($r, $w); | ||||
| 95 | } | ||||
| 96 | |||||
| 97 | # Rebless standard file handles | ||||
| 98 | 1 | 700ns | bless *STDIN{IO}, "FileHandle" if ref *STDIN{IO} eq "IO::Handle"; | ||
| 99 | 1 | 300ns | bless *STDOUT{IO}, "FileHandle" if ref *STDOUT{IO} eq "IO::Handle"; | ||
| 100 | 1 | 200ns | bless *STDERR{IO}, "FileHandle" if ref *STDERR{IO} eq "IO::Handle"; | ||
| 101 | |||||
| 102 | 1 | 10µs | 1; | ||
| 103 | |||||
| 104 | __END__ |