| File | /usr/local/lib/perl/5.8.8/Geo/IP/Record.pm | Statements Executed | 13 | Total Time | 0.000365 seconds |
| Calls | P | F | Exclusive Time |
Inclusive Time |
Subroutine | |
|---|---|---|---|---|---|---|
| 0 | 0 | 0 | 0 | 0 | Geo::IP::Record:: | BEGIN |
| 0 | 0 | 0 | 0 | 0 | Geo::IP::Record:: | latitude |
| 0 | 0 | 0 | 0 | 0 | Geo::IP::Record:: | longitude |
| Line | Stmts. | Exclusive Time | Avg. | Code |
|---|---|---|---|---|
| 1 | package Geo::IP::Record; | |||
| 2 | ||||
| 3 | 3 | 7.9e-5 | 2.6e-5 | use Geo::IP; # # spent 78µs making 1 call to Exporter::import |
| 4 | ||||
| 5 | 3 | 4.9e-5 | 1.6e-5 | use vars qw/$pp/; # spent 55µs making 1 call to vars::import |
| 6 | ||||
| 7 | ||||
| 8 | 3 | 0.00016 | 5.3e-5 | use strict; # spent 16µs making 1 call to strict::import |
| 9 | ||||
| 10 | # here are the missing functions if the C API is used | |||
| 11 | sub latitude { | |||
| 12 | my $gir = shift; | |||
| 13 | return sprintf( "%.4f", $gir->_latitude ); | |||
| 14 | } | |||
| 15 | ||||
| 16 | sub longitude { | |||
| 17 | my $gir = shift; | |||
| 18 | return sprintf( "%.4f", $gir->_longitude ); | |||
| 19 | } | |||
| 20 | ||||
| 21 | ||||
| 22 | ||||
| 23 | BEGIN { | |||
| 24 | 1 | 3.0e-6 | 3.0e-6 | $pp = !defined(&Geo::IP::Record::city) |
| 25 | || $Geo::IP::GEOIP_PP_ONLY; | |||
| 26 | 1 | 6.7e-5 | 6.7e-5 | } |
| 27 | ||||
| 28 | 1 | 1.0e-6 | 1.0e-6 | eval <<'__PP__' if $pp; |
| 29 | ||||
| 30 | for ( qw: country_code country_code3 country_name | |||
| 31 | region region_name city | |||
| 32 | postal_code dma_code area_code | |||
| 33 | latitude longitude continent_code | |||
| 34 | metro_code : ) { | |||
| 35 | ||||
| 36 | no strict qw/ refs /; | |||
| 37 | no warnings qw/ redefine /; | |||
| 38 | my $m = $_; # looks bogus, but it is not! it is a copy not a alias | |||
| 39 | *$_ = sub { $_[0]->{$m} }; | |||
| 40 | } | |||
| 41 | ||||
| 42 | { | |||
| 43 | my $TIME_ZONE; | |||
| 44 | ||||
| 45 | local $_ = <DATA>; # skip first line | |||
| 46 | while (<DATA>) { | |||
| 47 | chomp; | |||
| 48 | my ( $country, $region, $timezone ) = split /\t/; | |||
| 49 | $TIME_ZONE->{$country}->{ $region || '' } = $timezone; | |||
| 50 | } | |||
| 51 | ||||
| 52 | sub time_zone { | |||
| 53 | my ( $self ) = @_; | |||
| 54 | my ( $country, $region ) = ( $self->country_code, $self->region ); | |||
| 55 | return undef unless $country; | |||
| 56 | return undef unless defined $TIME_ZONE->{$country}; | |||
| 57 | $region ||= ''; | |||
| 58 | return | |||
| 59 | defined $TIME_ZONE->{$country}->{$region} | |||
| 60 | ? $TIME_ZONE->{$country}->{$region} | |||
| 61 | : $TIME_ZONE->{$country}->{''}; | |||
| 62 | } | |||
| 63 | } | |||
| 64 | ||||
| 65 | __PP__ | |||
| 66 | 1 | 7.0e-6 | 7.0e-6 | 1; |
| 67 | __DATA__ | |||
| 68 | country region timezone | |||
| 69 | US AL America/Chicago | |||
| 70 | US AK America/Anchorage | |||
| 71 | US AZ America/Phoenix | |||
| 72 | US AR America/Chicago | |||
| 73 | US CA America/Los_Angeles | |||
| 74 | US CO America/Denver | |||
| 75 | US CT America/New_York | |||
| 76 | US DE America/New_York | |||
| 77 | US DC America/New_York | |||
| 78 | US FL America/New_York | |||
| 79 | US GA America/New_York | |||
| 80 | US HI Pacific/Honolulu | |||
| 81 | US ID America/Denver | |||
| 82 | US IL America/Chicago | |||
| 83 | US IN America/Indianapolis | |||
| 84 | US IA America/Chicago | |||
| 85 | US KS America/Chicago | |||
| 86 | US KY America/New_York | |||
| 87 | US LA America/Chicago | |||
| 88 | US ME America/New_York | |||
| 89 | US MD America/New_York | |||
| 90 | US MA America/New_York | |||
| 91 | US MI America/New_York | |||
| 92 | US MN America/Chicago | |||
| 93 | US MS America/Chicago | |||
| 94 | US MO America/Chicago | |||
| 95 | US MT America/Denver | |||
| 96 | US NE America/Chicago | |||
| 97 | US NV America/Los_Angeles | |||
| 98 | US NH America/New_York | |||
| 99 | US NJ America/New_York | |||
| 100 | US NM America/Denver | |||
| 101 | US NY America/New_York | |||
| 102 | US NC America/New_York | |||
| 103 | US ND America/Chicago | |||
| 104 | US OH America/New_York | |||
| 105 | US OK America/Chicago | |||
| 106 | US OR America/Los_Angeles | |||
| 107 | US PA America/New_York | |||
| 108 | US RI America/New_York | |||
| 109 | US SC America/New_York | |||
| 110 | US SD America/Chicago | |||
| 111 | US TN America/Chicago | |||
| 112 | US TX America/Chicago | |||
| 113 | US UT America/Denver | |||
| 114 | US VT America/New_York | |||
| 115 | US VA America/New_York | |||
| 116 | US WA America/Los_Angeles | |||
| 117 | US WV America/New_York | |||
| 118 | US WI America/Chicago | |||
| 119 | CA AB America/Edmonton | |||
| 120 | CA BC America/Vancouver | |||
| 121 | CA MB America/Winnipeg | |||
| 122 | CA NB America/Halifax | |||
| 123 | CA NF America/St_Johns | |||
| 124 | CA NT America/Yellowknife | |||
| 125 | CA NS America/Halifax | |||
| 126 | CA NU America/Rankin_Inlet | |||
| 127 | CA ON America/Rainy_River | |||
| 128 | CA PE America/Halifax | |||
| 129 | CA QC America/Montreal | |||
| 130 | CA SK America/Regina | |||
| 131 | AS US/Samoa | |||
| 132 | CI Africa/Abidjan | |||
| 133 | GH Africa/Accra | |||
| 134 | DZ Africa/Algiers | |||
| 135 | ER Africa/Asmera | |||
| 136 | ML Africa/Bamako | |||
| 137 | CF Africa/Bangui | |||
| 138 | GM Africa/Banjul | |||
| 139 | GW Africa/Bissau | |||
| 140 | CG Africa/Brazzaville | |||
| 141 | BI Africa/Bujumbura | |||
| 142 | EG Africa/Cairo | |||
| 143 | MA Africa/Casablanca | |||
| 144 | GN Africa/Conakry | |||
| 145 | SN Africa/Dakar | |||
| 146 | DJ Africa/Djibouti | |||
| 147 | SL Africa/Freetown | |||
| 148 | BW Africa/Gaborone | |||
| 149 | ZW Africa/Harare | |||
| 150 | ZA Africa/Johannesburg | |||
| 151 | UG Africa/Kampala | |||
| 152 | SD Africa/Khartoum | |||
| 153 | RW Africa/Kigali | |||
| 154 | NG Africa/Lagos | |||
| 155 | GA Africa/Libreville | |||
| 156 | TG Africa/Lome | |||
| 157 | AO Africa/Luanda | |||
| 158 | ZM Africa/Lusaka | |||
| 159 | GQ Africa/Malabo | |||
| 160 | MZ Africa/Maputo | |||
| 161 | LS Africa/Maseru | |||
| 162 | SZ Africa/Mbabane | |||
| 163 | SO Africa/Mogadishu | |||
| 164 | LR Africa/Monrovia | |||
| 165 | KE Africa/Nairobi | |||
| 166 | TD Africa/Ndjamena | |||
| 167 | NE Africa/Niamey | |||
| 168 | MR Africa/Nouakchott | |||
| 169 | BF Africa/Ouagadougou | |||
| 170 | ST Africa/Sao_Tome | |||
| 171 | LY Africa/Tripoli | |||
| 172 | TN Africa/Tunis | |||
| 173 | AI America/Anguilla | |||
| 174 | AG America/Antigua | |||
| 175 | AW America/Aruba | |||
| 176 | BB America/Barbados | |||
| 177 | BZ America/Belize | |||
| 178 | CO America/Bogota | |||
| 179 | VE America/Caracas | |||
| 180 | KY America/Cayman | |||
| 181 | MX America/Chihuahua | |||
| 182 | CR America/Costa_Rica | |||
| 183 | DM America/Dominica | |||
| 184 | SV America/El_Salvador | |||
| 185 | GD America/Grenada | |||
| 186 | FR Europe/Paris | |||
| 187 | GP America/Guadeloupe | |||
| 188 | GT America/Guatemala | |||
| 189 | EC America/Guayaquil | |||
| 190 | GY America/Guyana | |||
| 191 | CU America/Havana | |||
| 192 | JM America/Jamaica | |||
| 193 | BO America/La_Paz | |||
| 194 | PE America/Lima | |||
| 195 | NI America/Managua | |||
| 196 | MQ America/Martinique | |||
| 197 | AR America/Mendoza | |||
| 198 | UY America/Montevideo | |||
| 199 | MS America/Montserrat | |||
| 200 | BS America/Nassau | |||
| 201 | PA America/Panama | |||
| 202 | SR America/Paramaribo | |||
| 203 | PR America/Puerto_Rico | |||
| 204 | KN America/St_Kitts | |||
| 205 | LC America/St_Lucia | |||
| 206 | VC America/St_Vincent | |||
| 207 | HN America/Tegucigalpa | |||
| 208 | YE Asia/Aden | |||
| 209 | KZ Asia/Almaty | |||
| 210 | JO Asia/Amman | |||
| 211 | TM Asia/Ashgabat | |||
| 212 | IQ Asia/Baghdad | |||
| 213 | BH Asia/Bahrain | |||
| 214 | AZ Asia/Baku | |||
| 215 | TH Asia/Bangkok | |||
| 216 | LB Asia/Beirut | |||
| 217 | KG Asia/Bishkek | |||
| 218 | BN Asia/Brunei | |||
| 219 | IN Asia/Calcutta | |||
| 220 | MN Asia/Choibalsan | |||
| 221 | CN Asia/Chongqing | |||
| 222 | LK Asia/Colombo | |||
| 223 | BD Asia/Dhaka | |||
| 224 | AE Asia/Dubai | |||
| 225 | TJ Asia/Dushanbe | |||
| 226 | HK Asia/Hong_Kong | |||
| 227 | TR Asia/Istanbul | |||
| 228 | ID Asia/Jakarta | |||
| 229 | IL Asia/Jerusalem | |||
| 230 | AF Asia/Kabul | |||
| 231 | PK Asia/Karachi | |||
| 232 | NP Asia/Katmandu | |||
| 233 | KW Asia/Kuwait | |||
| 234 | MO Asia/Macao | |||
| 235 | PH Asia/Manila | |||
| 236 | OM Asia/Muscat | |||
| 237 | CY Asia/Nicosia | |||
| 238 | KP Asia/Pyongyang | |||
| 239 | QA Asia/Qatar | |||
| 240 | MM Asia/Rangoon | |||
| 241 | SA Asia/Riyadh | |||
| 242 | KR Asia/Seoul | |||
| 243 | SG Asia/Singapore | |||
| 244 | TW Asia/Taipei | |||
| 245 | UZ Asia/Tashkent | |||
| 246 | GE Asia/Tbilisi | |||
| 247 | BT Asia/Thimphu | |||
| 248 | JP Asia/Tokyo | |||
| 249 | LA Asia/Vientiane | |||
| 250 | AM Asia/Yerevan | |||
| 251 | PT Atlantic/Azores | |||
| 252 | BM Atlantic/Bermuda | |||
| 253 | CV Atlantic/Cape_Verde | |||
| 254 | FO Atlantic/Faeroe | |||
| 255 | IS Atlantic/Reykjavik | |||
| 256 | GS Atlantic/South_Georgia | |||
| 257 | SH Atlantic/St_Helena | |||
| 258 | AU Australia/Queensland | |||
| 259 | BR Brazil/Acre | |||
| 260 | CL Chile/Continental | |||
| 261 | NL Europe/Amsterdam | |||
| 262 | AD Europe/Andorra | |||
| 263 | GR Europe/Athens | |||
| 264 | YU Europe/Belgrade | |||
| 265 | DE Europe/Berlin | |||
| 266 | SK Europe/Bratislava | |||
| 267 | BE Europe/Brussels | |||
| 268 | RO Europe/Bucharest | |||
| 269 | HU Europe/Budapest | |||
| 270 | DK Europe/Copenhagen | |||
| 271 | IE Europe/Dublin | |||
| 272 | GI Europe/Gibraltar | |||
| 273 | FI Europe/Helsinki | |||
| 274 | UA Europe/Kiev | |||
| 275 | SI Europe/Ljubljana | |||
| 276 | GB Europe/London | |||
| 277 | LU Europe/Luxembourg | |||
| 278 | ES Europe/Madrid | |||
| 279 | MT Europe/Malta | |||
| 280 | BY Europe/Minsk | |||
| 281 | MC Europe/Monaco | |||
| 282 | RU Europe/Moscow | |||
| 283 | NO Europe/Oslo | |||
| 284 | CZ Europe/Prague | |||
| 285 | LV Europe/Riga | |||
| 286 | IT Europe/Rome | |||
| 287 | SM Europe/San_Marino | |||
| 288 | BA Europe/Sarajevo | |||
| 289 | MK Europe/Skopje | |||
| 290 | BG Europe/Sofia | |||
| 291 | SE Europe/Stockholm | |||
| 292 | EE Europe/Tallinn | |||
| 293 | AL Europe/Tirane | |||
| 294 | LI Europe/Vaduz | |||
| 295 | VA Europe/Vatican | |||
| 296 | AT Europe/Vienna | |||
| 297 | LT Europe/Vilnius | |||
| 298 | PL Europe/Warsaw | |||
| 299 | HR Europe/Zagreb | |||
| 300 | IR Asia/Tehran | |||
| 301 | NZ Pacific/Auckland | |||
| 302 | MG Indian/Antananarivo | |||
| 303 | CX Indian/Christmas | |||
| 304 | CC Indian/Cocos | |||
| 305 | KM Indian/Comoro | |||
| 306 | MV Indian/Maldives | |||
| 307 | MU Indian/Mauritius | |||
| 308 | YT Indian/Mayotte | |||
| 309 | RE Indian/Reunion | |||
| 310 | FJ Pacific/Fiji | |||
| 311 | TV Pacific/Funafuti | |||
| 312 | GU Pacific/Guam | |||
| 313 | NR Pacific/Nauru | |||
| 314 | NU Pacific/Niue | |||
| 315 | NF Pacific/Norfolk | |||
| 316 | PW Pacific/Palau | |||
| 317 | PN Pacific/Pitcairn | |||
| 318 | CK Pacific/Rarotonga | |||
| 319 | WS Pacific/Samoa | |||
| 320 | KI Pacific/Tarawa | |||
| 321 | TO Pacific/Tongatapu | |||
| 322 | WF Pacific/Wallis | |||
| 323 | TZ Africa/Dar_es_Salaam | |||
| 324 | VN Asia/Phnom_Penh | |||
| 325 | KH Asia/Phnom_Penh | |||
| 326 | CM Africa/Lagos | |||
| 327 | DO America/Santo_Domingo | |||
| 328 | TL Asia/Jakarta | |||
| 329 | ET Africa/Addis_Ababa | |||
| 330 | FX Europe/Paris | |||
| 331 | GL America/Godthab | |||
| 332 | HT America/Port-au-Prince | |||
| 333 | CH Europe/Zurich | |||
| 334 | AN America/Curacao | |||
| 335 | BJ Africa/Porto-Novo | |||
| 336 | EH Africa/El_Aaiun | |||
| 337 | FK Atlantic/Stanley | |||
| 338 | GF America/Cayenne | |||
| 339 | IO Indian/Chagos | |||
| 340 | MD Europe/Chisinau | |||
| 341 | MP Pacific/Saipan | |||
| 342 | MW Africa/Blantyre | |||
| 343 | NA Africa/Windhoek | |||
| 344 | NC Pacific/Noumea | |||
| 345 | PG Pacific/Port_Moresby | |||
| 346 | PM America/Miquelon | |||
| 347 | PS Asia/Gaza | |||
| 348 | PY America/Asuncion | |||
| 349 | SB Pacific/Guadalcanal | |||
| 350 | SC Indian/Mahe | |||
| 351 | SJ Arctic/Longyearbyen | |||
| 352 | SY Asia/Damascus | |||
| 353 | TC America/Grand_Turk | |||
| 354 | TF Indian/Kerguelen | |||
| 355 | TK Pacific/Fakaofo | |||
| 356 | TT America/Port_of_Spain | |||
| 357 | VG America/Tortola | |||
| 358 | VI America/St_Thomas | |||
| 359 | VU Pacific/Efate | |||
| 360 | RS Europe/Belgrade | |||
| 361 | ME Europe/Podgorica | |||
| 362 | AX Europe/Mariehamn | |||
| 363 | GG Europe/Guernsey | |||
| 364 | IM Europe/Isle_of_Man | |||
| 365 | JE Europe/Jersey | |||
| 366 | BL America/St_Barthelemy | |||
| 367 | MF America/Marigot |