| Filename | /usr/lib/x86_64-linux-gnu/perl/5.28/Errno.pm |
| Statements | Executed 282 statements in 839µs |
| Calls | P | F | Exclusive Time |
Inclusive Time |
Subroutine |
|---|---|---|---|---|---|
| 1 | 1 | 1 | 192µs | 192µs | Errno::BEGIN@17 |
| 1 | 1 | 1 | 10µs | 12µs | Errno::BEGIN@9 |
| 1 | 1 | 1 | 9µs | 11µs | Errno::_tie_it |
| 1 | 1 | 1 | 2µs | 2µs | Errno::TIEHASH |
| 0 | 0 | 0 | 0s | 0s | Errno::EXISTS |
| 0 | 0 | 0 | 0s | 0s | Errno::FETCH |
| 0 | 0 | 0 | 0s | 0s | Errno::FIRSTKEY |
| 0 | 0 | 0 | 0s | 0s | Errno::NEXTKEY |
| 0 | 0 | 0 | 0s | 0s | Errno::STORE |
| Line | State ments |
Time on line |
Calls | Time in subs |
Code |
|---|---|---|---|---|---|
| 1 | # -*- buffer-read-only: t -*- | ||||
| 2 | # | ||||
| 3 | # This file is auto-generated by ext/Errno/Errno_pm.PL. | ||||
| 4 | # ***ANY*** changes here will be lost. | ||||
| 5 | # | ||||
| 6 | |||||
| 7 | package Errno; | ||||
| 8 | 1 | 400ns | require Exporter; | ||
| 9 | 2 | 294µs | 2 | 14µs | # spent 12µs (10+2) within Errno::BEGIN@9 which was called:
# once (10µs+2µs) by File::Temp::BEGIN@16 at line 9 # spent 12µs making 1 call to Errno::BEGIN@9
# spent 2µs making 1 call to strict::import |
| 10 | |||||
| 11 | 1 | 300ns | our $VERSION = "1.30"; | ||
| 12 | 1 | 11µs | $VERSION = eval $VERSION; # spent 2µs executing statements in string eval | ||
| 13 | 1 | 5µs | our @ISA = 'Exporter'; | ||
| 14 | |||||
| 15 | 1 | 100ns | my %err; | ||
| 16 | |||||
| 17 | # spent 192µs within Errno::BEGIN@17 which was called:
# once (192µs+0s) by File::Temp::BEGIN@16 at line 173 | ||||
| 18 | 1 | 54µs | %err = ( | ||
| 19 | EPERM => 1, | ||||
| 20 | ENOENT => 2, | ||||
| 21 | ESRCH => 3, | ||||
| 22 | EINTR => 4, | ||||
| 23 | EIO => 5, | ||||
| 24 | ENXIO => 6, | ||||
| 25 | E2BIG => 7, | ||||
| 26 | ENOEXEC => 8, | ||||
| 27 | EBADF => 9, | ||||
| 28 | ECHILD => 10, | ||||
| 29 | EAGAIN => 11, | ||||
| 30 | EWOULDBLOCK => 11, | ||||
| 31 | ENOMEM => 12, | ||||
| 32 | EACCES => 13, | ||||
| 33 | EFAULT => 14, | ||||
| 34 | ENOTBLK => 15, | ||||
| 35 | EBUSY => 16, | ||||
| 36 | EEXIST => 17, | ||||
| 37 | EXDEV => 18, | ||||
| 38 | ENODEV => 19, | ||||
| 39 | ENOTDIR => 20, | ||||
| 40 | EISDIR => 21, | ||||
| 41 | EINVAL => 22, | ||||
| 42 | ENFILE => 23, | ||||
| 43 | EMFILE => 24, | ||||
| 44 | ENOTTY => 25, | ||||
| 45 | ETXTBSY => 26, | ||||
| 46 | EFBIG => 27, | ||||
| 47 | ENOSPC => 28, | ||||
| 48 | ESPIPE => 29, | ||||
| 49 | EROFS => 30, | ||||
| 50 | EMLINK => 31, | ||||
| 51 | EPIPE => 32, | ||||
| 52 | EDOM => 33, | ||||
| 53 | ERANGE => 34, | ||||
| 54 | EDEADLK => 35, | ||||
| 55 | EDEADLOCK => 35, | ||||
| 56 | ENAMETOOLONG => 36, | ||||
| 57 | ENOLCK => 37, | ||||
| 58 | ENOSYS => 38, | ||||
| 59 | ENOTEMPTY => 39, | ||||
| 60 | ELOOP => 40, | ||||
| 61 | ENOMSG => 42, | ||||
| 62 | EIDRM => 43, | ||||
| 63 | ECHRNG => 44, | ||||
| 64 | EL2NSYNC => 45, | ||||
| 65 | EL3HLT => 46, | ||||
| 66 | EL3RST => 47, | ||||
| 67 | ELNRNG => 48, | ||||
| 68 | EUNATCH => 49, | ||||
| 69 | ENOCSI => 50, | ||||
| 70 | EL2HLT => 51, | ||||
| 71 | EBADE => 52, | ||||
| 72 | EBADR => 53, | ||||
| 73 | EXFULL => 54, | ||||
| 74 | ENOANO => 55, | ||||
| 75 | EBADRQC => 56, | ||||
| 76 | EBADSLT => 57, | ||||
| 77 | EBFONT => 59, | ||||
| 78 | ENOSTR => 60, | ||||
| 79 | ENODATA => 61, | ||||
| 80 | ETIME => 62, | ||||
| 81 | ENOSR => 63, | ||||
| 82 | ENONET => 64, | ||||
| 83 | ENOPKG => 65, | ||||
| 84 | EREMOTE => 66, | ||||
| 85 | ENOLINK => 67, | ||||
| 86 | EADV => 68, | ||||
| 87 | ESRMNT => 69, | ||||
| 88 | ECOMM => 70, | ||||
| 89 | EPROTO => 71, | ||||
| 90 | EMULTIHOP => 72, | ||||
| 91 | EDOTDOT => 73, | ||||
| 92 | EBADMSG => 74, | ||||
| 93 | EOVERFLOW => 75, | ||||
| 94 | ENOTUNIQ => 76, | ||||
| 95 | EBADFD => 77, | ||||
| 96 | EREMCHG => 78, | ||||
| 97 | ELIBACC => 79, | ||||
| 98 | ELIBBAD => 80, | ||||
| 99 | ELIBSCN => 81, | ||||
| 100 | ELIBMAX => 82, | ||||
| 101 | ELIBEXEC => 83, | ||||
| 102 | EILSEQ => 84, | ||||
| 103 | ERESTART => 85, | ||||
| 104 | ESTRPIPE => 86, | ||||
| 105 | EUSERS => 87, | ||||
| 106 | ENOTSOCK => 88, | ||||
| 107 | EDESTADDRREQ => 89, | ||||
| 108 | EMSGSIZE => 90, | ||||
| 109 | EPROTOTYPE => 91, | ||||
| 110 | ENOPROTOOPT => 92, | ||||
| 111 | EPROTONOSUPPORT => 93, | ||||
| 112 | ESOCKTNOSUPPORT => 94, | ||||
| 113 | ENOTSUP => 95, | ||||
| 114 | EOPNOTSUPP => 95, | ||||
| 115 | EPFNOSUPPORT => 96, | ||||
| 116 | EAFNOSUPPORT => 97, | ||||
| 117 | EADDRINUSE => 98, | ||||
| 118 | EADDRNOTAVAIL => 99, | ||||
| 119 | ENETDOWN => 100, | ||||
| 120 | ENETUNREACH => 101, | ||||
| 121 | ENETRESET => 102, | ||||
| 122 | ECONNABORTED => 103, | ||||
| 123 | ECONNRESET => 104, | ||||
| 124 | ENOBUFS => 105, | ||||
| 125 | EISCONN => 106, | ||||
| 126 | ENOTCONN => 107, | ||||
| 127 | ESHUTDOWN => 108, | ||||
| 128 | ETOOMANYREFS => 109, | ||||
| 129 | ETIMEDOUT => 110, | ||||
| 130 | ECONNREFUSED => 111, | ||||
| 131 | EHOSTDOWN => 112, | ||||
| 132 | EHOSTUNREACH => 113, | ||||
| 133 | EALREADY => 114, | ||||
| 134 | EINPROGRESS => 115, | ||||
| 135 | ESTALE => 116, | ||||
| 136 | EUCLEAN => 117, | ||||
| 137 | ENOTNAM => 118, | ||||
| 138 | ENAVAIL => 119, | ||||
| 139 | EISNAM => 120, | ||||
| 140 | EREMOTEIO => 121, | ||||
| 141 | EDQUOT => 122, | ||||
| 142 | ENOMEDIUM => 123, | ||||
| 143 | EMEDIUMTYPE => 124, | ||||
| 144 | ECANCELED => 125, | ||||
| 145 | ENOKEY => 126, | ||||
| 146 | EKEYEXPIRED => 127, | ||||
| 147 | EKEYREVOKED => 128, | ||||
| 148 | EKEYREJECTED => 129, | ||||
| 149 | EOWNERDEAD => 130, | ||||
| 150 | ENOTRECOVERABLE => 131, | ||||
| 151 | ERFKILL => 132, | ||||
| 152 | EHWPOISON => 133, | ||||
| 153 | ); | ||||
| 154 | # Generate proxy constant subroutines for all the values. | ||||
| 155 | # Well, almost all the values. Unfortunately we can't assume that at this | ||||
| 156 | # point that our symbol table is empty, as code such as if the parser has | ||||
| 157 | # seen code such as C<exists &Errno::EINVAL>, it will have created the | ||||
| 158 | # typeglob. | ||||
| 159 | # Doing this before defining @EXPORT_OK etc means that even if a platform is | ||||
| 160 | # crazy enough to define EXPORT_OK as an error constant, everything will | ||||
| 161 | # still work, because the parser will upgrade the PCS to a real typeglob. | ||||
| 162 | # We rely on the subroutine definitions below to update the internal caches. | ||||
| 163 | # Don't use %each, as we don't want a copy of the value. | ||||
| 164 | 1 | 18µs | foreach my $name (keys %err) { | ||
| 165 | 134 | 44µs | if ($Errno::{$name}) { | ||
| 166 | # We expect this to be reached fairly rarely, so take an approach | ||||
| 167 | # which uses the least compile time effort in the common case: | ||||
| 168 | 1 | 25µs | eval "sub $name() { $err{$name} }; 1" or die $@; # spent 2µs executing statements in string eval | ||
| 169 | } else { | ||||
| 170 | 133 | 49µs | $Errno::{$name} = \$err{$name}; | ||
| 171 | } | ||||
| 172 | } | ||||
| 173 | 1 | 296µs | 1 | 192µs | } # spent 192µs making 1 call to Errno::BEGIN@17 |
| 174 | |||||
| 175 | 1 | 11µs | our @EXPORT_OK = keys %err; | ||
| 176 | |||||
| 177 | 1 | 6µs | our %EXPORT_TAGS = ( | ||
| 178 | POSIX => [qw( | ||||
| 179 | E2BIG EACCES EADDRINUSE EADDRNOTAVAIL EAFNOSUPPORT EAGAIN EALREADY | ||||
| 180 | EBADF EBUSY ECHILD ECONNABORTED ECONNREFUSED ECONNRESET EDEADLK | ||||
| 181 | EDESTADDRREQ EDOM EDQUOT EEXIST EFAULT EFBIG EHOSTDOWN EHOSTUNREACH | ||||
| 182 | EINPROGRESS EINTR EINVAL EIO EISCONN EISDIR ELOOP EMFILE EMLINK | ||||
| 183 | EMSGSIZE ENAMETOOLONG ENETDOWN ENETRESET ENETUNREACH ENFILE ENOBUFS | ||||
| 184 | ENODEV ENOENT ENOEXEC ENOLCK ENOMEM ENOPROTOOPT ENOSPC ENOSYS ENOTBLK | ||||
| 185 | ENOTCONN ENOTDIR ENOTEMPTY ENOTSOCK ENOTTY ENXIO EOPNOTSUPP EPERM | ||||
| 186 | EPFNOSUPPORT EPIPE EPROTONOSUPPORT EPROTOTYPE ERANGE EREMOTE ERESTART | ||||
| 187 | EROFS ESHUTDOWN ESOCKTNOSUPPORT ESPIPE ESRCH ESTALE ETIMEDOUT | ||||
| 188 | ETOOMANYREFS ETXTBSY EUSERS EWOULDBLOCK EXDEV | ||||
| 189 | )], | ||||
| 190 | ); | ||||
| 191 | |||||
| 192 | 1 | 5µs | # spent 2µs within Errno::TIEHASH which was called:
# once (2µs+0s) by Errno::_tie_it at line 224 | ||
| 193 | |||||
| 194 | sub FETCH { | ||||
| 195 | my (undef, $errname) = @_; | ||||
| 196 | return "" unless exists $err{$errname}; | ||||
| 197 | my $errno = $err{$errname}; | ||||
| 198 | return $errno == $! ? $errno : 0; | ||||
| 199 | } | ||||
| 200 | |||||
| 201 | sub STORE { | ||||
| 202 | require Carp; | ||||
| 203 | Carp::confess("ERRNO hash is read only!"); | ||||
| 204 | } | ||||
| 205 | |||||
| 206 | # This is the true return value | ||||
| 207 | 1 | 12µs | *CLEAR = *DELETE = \*STORE; # Typeglob aliasing uses less space | ||
| 208 | |||||
| 209 | sub NEXTKEY { | ||||
| 210 | each %err; | ||||
| 211 | } | ||||
| 212 | |||||
| 213 | sub FIRSTKEY { | ||||
| 214 | my $s = scalar keys %err; # initialize iterator | ||||
| 215 | each %err; | ||||
| 216 | } | ||||
| 217 | |||||
| 218 | sub EXISTS { | ||||
| 219 | my (undef, $errname) = @_; | ||||
| 220 | exists $err{$errname}; | ||||
| 221 | } | ||||
| 222 | |||||
| 223 | # spent 11µs (9+2) within Errno::_tie_it which was called:
# once (9µs+2µs) by IO::CaptureOutput::_proxy::BEGIN@138 at line 391 of File/Temp.pm | ||||
| 224 | 1 | 7µs | 1 | 2µs | tie %{$_[0]}, __PACKAGE__; # spent 2µs making 1 call to Errno::TIEHASH |
| 225 | } | ||||
| 226 | |||||
| 227 | __END__ |