aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFlavio Poletti <flavio@polettix.it>2021-10-01 23:18:44 +0200
committerFlavio Poletti <flavio@polettix.it>2021-10-01 23:18:44 +0200
commitaa00039668ee4b73c5a4a873e558eb0ebb91f8e4 (patch)
treeaf9f6244abf9b95eb795cf4ac389a3765432a542
parent7ba63ba98a923600977af991503798362b2b86f5 (diff)
downloadperlweeklychallenge-club-aa00039668ee4b73c5a4a873e558eb0ebb91f8e4.tar.gz
perlweeklychallenge-club-aa00039668ee4b73c5a4a873e558eb0ebb91f8e4.tar.bz2
perlweeklychallenge-club-aa00039668ee4b73c5a4a873e558eb0ebb91f8e4.zip
Add polettix's solution to challenge-132
-rw-r--r--challenge-132/polettix/blog.txt1
-rw-r--r--challenge-132/polettix/blog1.txt1
-rw-r--r--challenge-132/polettix/perl/ch-1.pl18
-rw-r--r--challenge-132/polettix/perl/ch-2.pl44
-rw-r--r--challenge-132/polettix/perl/cpanfile1
-rw-r--r--challenge-132/polettix/perl/cpanfile.snapshot879
-rw-r--r--challenge-132/polettix/raku/ch-1.raku9
-rw-r--r--challenge-132/polettix/raku/ch-2.raku39
8 files changed, 992 insertions, 0 deletions
diff --git a/challenge-132/polettix/blog.txt b/challenge-132/polettix/blog.txt
new file mode 100644
index 0000000000..ac6ca7ef7a
--- /dev/null
+++ b/challenge-132/polettix/blog.txt
@@ -0,0 +1 @@
+https://github.polettix.it/ETOOBUSY/2021/09/29/pwc132-mirror-dates/
diff --git a/challenge-132/polettix/blog1.txt b/challenge-132/polettix/blog1.txt
new file mode 100644
index 0000000000..68b83aa62c
--- /dev/null
+++ b/challenge-132/polettix/blog1.txt
@@ -0,0 +1 @@
+https://github.polettix.it/ETOOBUSY/2021/09/30/pwc132-hash-join/
diff --git a/challenge-132/polettix/perl/ch-1.pl b/challenge-132/polettix/perl/ch-1.pl
new file mode 100644
index 0000000000..5547218ac3
--- /dev/null
+++ b/challenge-132/polettix/perl/ch-1.pl
@@ -0,0 +1,18 @@
+#!/usr/bin/env perl
+use v5.24;
+use warnings;
+use experimental 'signatures';
+no warnings 'experimental::signatures';
+use DateTime;
+sub mirror_dates ($birth_date) {
+ my %bd;
+ @bd{qw< year month day >} = split m{\D+}mxs, $birth_date;
+ $birth_date = DateTime->new(%bd, hour => 12, minute => 0, second => 0);
+ my $today = DateTime->now;
+ my $delta = $today->delta_days($birth_date);
+ return (
+ $birth_date->subtract_duration($delta)->ymd('/'),
+ $today->add_duration($delta)->ymd('/'),
+ );
+}
+say join ', ', mirror_dates(shift // '1967-02-14');
diff --git a/challenge-132/polettix/perl/ch-2.pl b/challenge-132/polettix/perl/ch-2.pl
new file mode 100644
index 0000000000..3a8c86d80c
--- /dev/null
+++ b/challenge-132/polettix/perl/ch-2.pl
@@ -0,0 +1,44 @@
+#!/usr/bin/env perl
+use v5.24;
+use warnings;
+use experimental 'signatures';
+no warnings 'experimental::signatures';
+use Data::Dumper;
+
+sub hash_join ($one, $kone, $two, $ktwo) {
+ # make sure ($one, $kone) deal with the shorter of the two relations
+ ($one, $kone, $two, $ktwo) = ($two, $ktwo, $one, $kone)
+ if $one->@* > $two->@*;
+
+ # hash phase, build a hash from ($one, $kone)
+ my %hash_one;
+ push $hash_one{$_->[$kone]}->@*, $_ for $one->@*;
+
+ # scan phase
+ return map {
+ my @record = $_->@*;
+ my $key = splice @record, $ktwo, 1;
+ next unless exists $hash_one{$key};
+ map { [$_->@*, @record] } $hash_one{$key}->@*;
+ } $two->@*;
+}
+
+my @player_ages = (
+ [20, "Alex" ],
+ [28, "Joe" ],
+ [38, "Mike" ],
+ [18, "Alex" ],
+ [25, "David" ],
+ [18, "Simon" ],
+ );
+
+my @player_names = (
+ ["Alex", "Stewart"],
+ ["Joe", "Root" ],
+ ["Mike", "Gatting"],
+ ["Joe", "Blog" ],
+ ["Alex", "Jones" ],
+ ["Simon","Duane" ],
+ );
+
+say join ', ', $_->@* for hash_join(\@player_ages, 1, \@player_names, 0);
diff --git a/challenge-132/polettix/perl/cpanfile b/challenge-132/polettix/perl/cpanfile
new file mode 100644
index 0000000000..96806be17f
--- /dev/null
+++ b/challenge-132/polettix/perl/cpanfile
@@ -0,0 +1 @@
+requires 'DateTime';
diff --git a/challenge-132/polettix/perl/cpanfile.snapshot b/challenge-132/polettix/perl/cpanfile.snapshot
new file mode 100644
index 0000000000..953ec13f2f
--- /dev/null
+++ b/challenge-132/polettix/perl/cpanfile.snapshot
@@ -0,0 +1,879 @@
+# carton snapshot format: version 1.0
+DISTRIBUTIONS
+ B-Hooks-EndOfScope-0.24
+ pathname: E/ET/ETHER/B-Hooks-EndOfScope-0.24.tar.gz
+ provides:
+ B::Hooks::EndOfScope 0.24
+ B::Hooks::EndOfScope::PP 0.24
+ B::Hooks::EndOfScope::XS 0.24
+ requirements:
+ ExtUtils::MakeMaker 0
+ Hash::Util::FieldHash 0
+ Module::Implementation 0.05
+ Scalar::Util 0
+ Sub::Exporter::Progressive 0.001006
+ Text::ParseWords 0
+ Tie::Hash 0
+ Variable::Magic 0.48
+ perl 5.006001
+ strict 0
+ warnings 0
+ Class-Data-Inheritable-0.09
+ pathname: R/RS/RSHERER/Class-Data-Inheritable-0.09.tar.gz
+ provides:
+ Class::Data::Inheritable 0.09
+ requirements:
+ ExtUtils::MakeMaker 0
+ Class-Inspector-1.36
+ pathname: P/PL/PLICEASE/Class-Inspector-1.36.tar.gz
+ provides:
+ Class::Inspector 1.36
+ Class::Inspector::Functions 1.36
+ requirements:
+ ExtUtils::MakeMaker 0
+ File::Spec 0.80
+ base 0
+ perl 5.008
+ Class-Singleton-1.6
+ pathname: S/SH/SHAY/Class-Singleton-1.6.tar.gz
+ provides:
+ Class::Singleton 1.6
+ requirements:
+ ExtUtils::MakeMaker 6.64
+ perl 5.008001
+ strict 0
+ warnings 0
+ DateTime-1.54
+ pathname: D/DR/DROLSKY/DateTime-1.54.tar.gz
+ provides:
+ DateTime 1.54
+ DateTime::Duration 1.54
+ DateTime::Helpers 1.54
+ DateTime::Infinite 1.54
+ DateTime::Infinite::Future 1.54
+ DateTime::Infinite::Past 1.54
+ DateTime::LeapSecond 1.54
+ DateTime::PP 1.54
+ DateTime::PPExtra 1.54
+ DateTime::Types 1.54
+ requirements:
+ Carp 0
+ DateTime::Locale 1.06
+ DateTime::TimeZone 2.44
+ Dist::CheckConflicts 0.02
+ ExtUtils::MakeMaker 0
+ POSIX 0
+ Params::ValidationCompiler 0.26
+ Scalar::Util 0
+ Specio 0.18
+ Specio::Declare 0
+ Specio::Exporter 0
+ Specio::Library::Builtins 0
+ Specio::Library::Numeric 0
+ Specio::Library::String 0
+ Try::Tiny 0
+ XSLoader 0
+ base 0
+ integer 0
+ namespace::autoclean 0.19
+ overload 0
+ parent 0
+ perl 5.008004
+ strict 0
+ warnings 0
+ warnings::register 0
+ DateTime-Locale-1.32
+ pathname: D/DR/DROLSKY/DateTime-Locale-1.32.tar.gz
+ provides:
+ DateTime::Locale 1.32
+ DateTime::Locale::Base 1.32
+ DateTime::Locale::Catalog 1.32
+ DateTime::Locale::Data 1.32
+ DateTime::Locale::FromData 1.32
+ DateTime::Locale::Util 1.32
+ requirements:
+ Carp 0
+ Dist::CheckConflicts 0.02
+ Exporter 0
+ ExtUtils::MakeMaker 0
+ File::ShareDir 0
+ File::ShareDir::Install 0.06
+ File::Spec 0
+ List::Util 1.45
+ Params::ValidationCompiler 0.13
+ Specio::Declare 0
+ Specio::Library::String 0
+ Storable 0
+ namespace::autoclean 0.19
+ perl 5.008004
+ strict 0
+ warnings 0
+ DateTime-TimeZone-2.48
+ pathname: D/DR/DROLSKY/DateTime-TimeZone-2.48.tar.gz
+ provides:
+ DateTime::TimeZone 2.48
+ DateTime::TimeZone::Africa::Abidjan 2.48
+ DateTime::TimeZone::Africa::Algiers 2.48
+ DateTime::TimeZone::Africa::Bissau 2.48
+ DateTime::TimeZone::Africa::Cairo 2.48
+ DateTime::TimeZone::Africa::Casablanca 2.48
+ DateTime::TimeZone::Africa::Ceuta 2.48
+ DateTime::TimeZone::Africa::El_Aaiun 2.48
+ DateTime::TimeZone::Africa::Johannesburg 2.48
+ DateTime::TimeZone::Africa::Juba 2.48
+ DateTime::TimeZone::Africa::Khartoum 2.48
+ DateTime::TimeZone::Africa::Lagos 2.48
+ DateTime::TimeZone::Africa::Maputo 2.48
+ DateTime::TimeZone::Africa::Monrovia 2.48
+ DateTime::TimeZone::Africa::Nairobi 2.48
+ DateTime::TimeZone::Africa::Ndjamena 2.48
+ DateTime::TimeZone::Africa::Sao_Tome 2.48
+ DateTime::TimeZone::Africa::Tripoli 2.48
+ DateTime::TimeZone::Africa::Tunis 2.48
+ DateTime::TimeZone::Africa::Windhoek 2.48
+ DateTime::TimeZone::America::Adak 2.48
+ DateTime::TimeZone::America::Anchorage 2.48
+ DateTime::TimeZone::America::Araguaina 2.48
+ DateTime::TimeZone::America::Argentina::Buenos_Aires 2.48
+ DateTime::TimeZone::America::Argentina::Catamarca 2.48
+ DateTime::TimeZone::America::Argentina::Cordoba 2.48
+ DateTime::TimeZone::America::Argentina::Jujuy 2.48
+ DateTime::TimeZone::America::Argentina::La_Rioja 2.48
+ DateTime::TimeZone::America::Argentina::Mendoza 2.48
+ DateTime::TimeZone::America::Argentina::Rio_Gallegos 2.48
+ DateTime::TimeZone::America::Argentina::Salta 2.48
+ DateTime::TimeZone::America::Argentina::San_Juan 2.48
+ DateTime::TimeZone::America::Argentina::San_Luis 2.48
+ DateTime::TimeZone::America::Argentina::Tucuman 2.48
+ DateTime::TimeZone::America::Argentina::Ushuaia 2.48
+ DateTime::TimeZone::America::Asuncion 2.48
+ DateTime::TimeZone::America::Bahia 2.48
+ DateTime::TimeZone::America::Bahia_Banderas 2.48
+ DateTime::TimeZone::America::Barbados 2.48
+ DateTime::TimeZone::America::Belem 2.48
+ DateTime::TimeZone::America::Belize 2.48
+ DateTime::TimeZone::America::Boa_Vista 2.48
+ DateTime::TimeZone::America::Bogota 2.48
+ DateTime::TimeZone::America::Boise 2.48
+ DateTime::TimeZone::America::Cambridge_Bay 2.48
+ DateTime::TimeZone::America::Campo_Grande 2.48
+ DateTime::TimeZone::America::Cancun 2.48
+ DateTime::TimeZone::America::Caracas 2.48
+ DateTime::TimeZone::America::Cayenne 2.48
+ DateTime::TimeZone::America::Chicago 2.48
+ DateTime::TimeZone::America::Chihuahua 2.48
+ DateTime::TimeZone::America::Costa_Rica 2.48
+ DateTime::TimeZone::America::Cuiaba 2.48
+ DateTime::TimeZone::America::Danmarkshavn 2.48
+ DateTime::TimeZone::America::Dawson 2.48
+ DateTime::TimeZone::America::Dawson_Creek 2.48
+ DateTime::TimeZone::America::Denver 2.48
+ DateTime::TimeZone::America::Detroit 2.48
+ DateTime::TimeZone::America::Edmonton 2.48
+ DateTime::TimeZone::America::Eirunepe 2.48
+ DateTime::TimeZone::America::El_Salvador 2.48
+ DateTime::TimeZone::America::Fort_Nelson 2.48
+ DateTime::TimeZone::America::Fortaleza 2.48
+ DateTime::TimeZone::America::Glace_Bay 2.48
+ DateTime::TimeZone::America::Goose_Bay 2.48
+ DateTime::TimeZone::America::Grand_Turk 2.48
+ DateTime::TimeZone::America::Guatemala 2.48
+ DateTime::TimeZone::America::Guayaquil 2.48
+ DateTime::TimeZone::America::Guyana 2.48
+ DateTime::TimeZone::America::Halifax 2.48
+ DateTime::TimeZone::America::Havana 2.48
+ DateTime::TimeZone::America::Hermosillo 2.48
+ DateTime::TimeZone::America::Indiana::Indianapolis 2.48
+ DateTime::TimeZone::America::Indiana::Knox 2.48
+ DateTime::TimeZone::America::Indiana::Marengo 2.48
+ DateTime::TimeZone::America::Indiana::Petersburg 2.48
+ DateTime::TimeZone::America::Indiana::Tell_City 2.48
+ DateTime::TimeZone::America::Indiana::Vevay 2.48
+ DateTime::TimeZone::America::Indiana::Vincennes 2.48
+ DateTime::TimeZone::America::Indiana::Winamac 2.48
+ DateTime::TimeZone::America::Inuvik 2.48
+ DateTime::TimeZone::America::Iqaluit 2.48
+ DateTime::TimeZone::America::Jamaica 2.48
+ DateTime::TimeZone::America::Juneau 2.48
+ DateTime::TimeZone::America::Kentucky::Louisville 2.48
+ DateTime::TimeZone::America::Kentucky::Monticello 2.48
+ DateTime::TimeZone::America::La_Paz 2.48
+ DateTime::TimeZone::America::Lima 2.48
+ DateTime::TimeZone::America::Los_Angeles 2.48
+ DateTime::TimeZone::America::Maceio 2.48
+ DateTime::TimeZone::America::Managua 2.48
+ DateTime::TimeZone::America::Manaus 2.48
+ DateTime::TimeZone::America::Martinique 2.48
+ DateTime::TimeZone::America::Matamoros 2.48
+ DateTime::TimeZone::America::Mazatlan 2.48
+ DateTime::TimeZone::America::Menominee 2.48
+ DateTime::TimeZone::America::Merida 2.48
+ DateTime::TimeZone::America::Metlakatla 2.48
+ DateTime::TimeZone::America::Mexico_City 2.48
+ DateTime::TimeZone::America::Miquelon 2.48
+ DateTime::TimeZone::America::Moncton 2.48
+ DateTime::TimeZone::America::Monterrey 2.48
+ DateTime::TimeZone::America::Montevideo 2.48
+ DateTime::TimeZone::America::New_York 2.48
+ DateTime::TimeZone::America::Nipigon 2.48
+ DateTime::TimeZone::America::Nome 2.48
+ DateTime::TimeZone::America::Noronha 2.48
+ DateTime::TimeZone::America::North_Dakota::Beulah 2.48
+ DateTime::TimeZone::America::North_Dakota::Center 2.48
+ DateTime::TimeZone::America::North_Dakota::New_Salem 2.48
+ DateTime::TimeZone::America::Nuuk 2.48
+ DateTime::TimeZone::America::Ojinaga 2.48
+ DateTime::TimeZone::America::Panama 2.48
+ DateTime::TimeZone::America::Pangnirtung 2.48
+ DateTime::TimeZone::America::Paramaribo 2.48
+ DateTime::TimeZone::America::Phoenix 2.48
+ DateTime::TimeZone::America::Port_au_Prince 2.48
+ DateTime::TimeZone::America::Porto_Velho 2.48
+ DateTime::TimeZone::America::Puerto_Rico 2.48
+ DateTime::TimeZone::America::Punta_Arenas 2.48
+ DateTime::TimeZone::America::Rainy_River 2.48
+ DateTime::TimeZone::America::Rankin_Inlet 2.48
+ DateTime::TimeZone::America::Recife 2.48
+ DateTime::TimeZone::America::Regina 2.48
+ DateTime::TimeZone::America::Resolute 2.48
+ DateTime::TimeZone::America::Rio_Branco 2.48
+ DateTime::TimeZone::America::Santarem 2.48
+ DateTime::TimeZone::America::Santiago 2.48
+ DateTime::TimeZone::America::Santo_Domingo 2.48
+ DateTime::TimeZone::America::Sao_Paulo 2.48
+ DateTime::TimeZone::America::Scoresbysund 2.48
+ DateTime::TimeZone::America::Sitka 2.48
+ DateTime::TimeZone::America::St_Johns 2.48
+ DateTime::TimeZone::America::Swift_Current 2.48
+ DateTime::TimeZone::America::Tegucigalpa 2.48
+ DateTime::TimeZone::America::Thule 2.48
+ DateTime::TimeZone::America::Thunder_Bay 2.48
+ DateTime::TimeZone::America::Tijuana 2.48
+ DateTime::TimeZone::America::Toronto 2.48
+ DateTime::TimeZone::America::Vancouver 2.48
+ DateTime::TimeZone::America::Whitehorse 2.48
+ DateTime::TimeZone::America::Winnipeg 2.48
+ DateTime::TimeZone::America::Yakutat 2.48
+ DateTime::TimeZone::America::Yellowknife 2.48
+ DateTime::TimeZone::Antarctica::Casey 2.48
+ DateTime::TimeZone::Antarctica::Davis 2.48
+ DateTime::TimeZone::Antarctica::Macquarie 2.48
+ DateTime::TimeZone::Antarctica::Mawson 2.48
+ DateTime::TimeZone::Antarctica::Palmer 2.48
+ DateTime::TimeZone::Antarctica::Rothera 2.48
+ DateTime::TimeZone::Antarctica::Troll 2.48
+ DateTime::TimeZone::Antarctica::Vostok 2.48
+ DateTime::TimeZone::Asia::Almaty 2.48
+ DateTime::TimeZone::Asia::Amman 2.48
+ DateTime::TimeZone::Asia::Anadyr 2.48
+ DateTime::TimeZone::Asia::Aqtau 2.48
+ DateTime::TimeZone::Asia::Aqtobe 2.48
+ DateTime::TimeZone::Asia::Ashgabat 2.48
+ DateTime::TimeZone::Asia::Atyrau 2.48
+ DateTime::TimeZone::Asia::Baghdad 2.48
+ DateTime::TimeZone::Asia::Baku 2.48
+ DateTime::TimeZone::Asia::Bangkok 2.48
+ DateTime::TimeZone::Asia::Barnaul 2.48
+ DateTime::TimeZone::Asia::Beirut 2.48
+ DateTime::TimeZone::Asia::Bishkek 2.48
+ DateTime::TimeZone::Asia::Brunei 2.48
+ DateTime::TimeZone::Asia::Chita 2.48
+ DateTime::TimeZone::Asia::Choibalsan 2.48
+ DateTime::TimeZone::Asia::Colombo 2.48
+ DateTime::TimeZone::Asia::Damascus 2.48
+ DateTime::TimeZone::Asia::Dhaka 2.48
+ DateTime::TimeZone::Asia::Dili 2.48
+ DateTime::TimeZone::Asia::Dubai 2.48
+ DateTime::TimeZone::Asia::Dushanbe 2.48
+ DateTime::TimeZone::Asia::Famagusta 2.48
+ DateTime::TimeZone::Asia::Gaza 2.48
+ DateTime::TimeZone::Asia::Hebron 2.48
+ DateTime::TimeZone::Asia::Ho_Chi_Minh 2.48
+ DateTime::TimeZone::Asia::Hong_Kong 2.48
+ DateTime::TimeZone::Asia::Hovd 2.48
+ DateTime::TimeZone::Asia::Irkutsk 2.48
+ DateTime::TimeZone::Asia::Jakarta 2.48
+ DateTime::TimeZone::Asia::Jayapura 2.48
+ DateTime::TimeZone::Asia::Jerusalem 2.48
+ DateTime::TimeZone::Asia::Kabul 2.48
+ DateTime::TimeZone::Asia::Kamchatka 2.48
+ DateTime::TimeZone::Asia::Karachi 2.48
+ DateTime::TimeZone::Asia::Kathmandu 2.48
+ DateTime::TimeZone::Asia::Khandyga 2.48
+ DateTime::TimeZone::Asia::Kolkata 2.48
+ DateTime::TimeZone::Asia::Krasnoyarsk 2.48
+ DateTime::TimeZone::Asia::Kuala_Lumpur 2.48
+ DateTime::TimeZone::Asia::Kuching 2.48
+ DateTime::TimeZone::Asia::Macau 2.48
+ DateTime::TimeZone::Asia::Magadan 2.48
+ DateTime::TimeZone::Asia::Makassar 2.48
+ DateTime::TimeZone::Asia::Manila 2.48
+ DateTime::TimeZone::Asia::Nicosia 2.48
+ DateTime::TimeZone::Asia::Novokuznetsk 2.48
+ DateTime::TimeZone::Asia::Novosibirsk 2.48
+ DateTime::TimeZone::Asia::Omsk 2.48
+ DateTime::TimeZone::Asia::Oral 2.48
+ DateTime::TimeZone::Asia::Pontianak 2.48
+ DateTime::TimeZone::Asia::Pyongyang 2.48
+ DateTime::TimeZone::Asia::Qatar 2.48
+ DateTime::TimeZone::Asia::Qostanay 2.48
+ DateTime::TimeZone::Asia::Qyzylorda 2.48
+ DateTime::TimeZone::Asia::Riyadh 2.48
+ DateTime::TimeZone::Asia::Sakhalin 2.48
+ DateTime::TimeZone::Asia::Samarkand 2.48
+ DateTime::TimeZone::Asia::Seoul 2.48
+ DateTime::TimeZone::Asia::Shanghai 2.48
+ DateTime::TimeZone::Asia::Singapore 2.48
+ DateTime::TimeZone::Asia::Srednekolymsk 2.48
+ DateTime::TimeZone::Asia::Taipei 2.48
+ DateTime::TimeZone::Asia::Tashkent 2.48
+ DateTime::TimeZone::Asia::Tbilisi 2.48
+ DateTime::TimeZone::Asia::Tehran 2.48
+ DateTime::TimeZone::Asia::Thimphu 2.48
+ DateTime::TimeZone::Asia::Tokyo 2.48
+ DateTime::TimeZone::Asia::Tomsk 2.48
+ DateTime::TimeZone::Asia::Ulaanbaatar 2.48
+ DateTime::TimeZone::Asia::Urumqi 2.48
+ DateTime::TimeZone::Asia::Ust_Nera 2.48
+ DateTime::TimeZone::Asia::Vladivostok 2.48
+ DateTime::TimeZone::Asia::Yakutsk 2.48
+ DateTime::TimeZone::Asia::Yangon 2.48
+ DateTime::TimeZone::Asia::Yekaterinburg 2.48
+ DateTime::TimeZone::Asia::Yerevan 2.48
+ DateTime::TimeZone::Atlantic::Azores 2.48
+ DateTime::TimeZone::Atlantic::Bermuda 2.48
+ DateTime::TimeZone::Atlantic::Canary 2.48
+ DateTime::TimeZone::Atlantic::Cape_Verde 2.48
+ DateTime::TimeZone::Atlantic::Faroe 2.48
+ DateTime::TimeZone::Atlantic::Madeira 2.48
+ DateTime::TimeZone::Atlantic::Reykjavik 2.48
+ DateTime::TimeZone::Atlantic::South_Georgia 2.48
+ DateTime::TimeZone::Atlantic::Stanley 2.48
+ DateTime::TimeZone::Australia::Adelaide 2.48
+ DateTime::TimeZone::Australia::Brisbane 2.48
+ DateTime::TimeZone::Australia::Broken_Hill 2.48
+ DateTime::TimeZone::Australia::Darwin 2.48
+ DateTime::TimeZone::Australia::Eucla 2.48
+ DateTime::TimeZone::Australia::Hobart 2.48
+ DateTime::TimeZone::Australia::Lindeman 2.48
+ DateTime::TimeZone::Australia::Lord_Howe 2.48
+ DateTime::TimeZone::Australia::Melbourne 2.48
+ DateTime::TimeZone::Australia::Perth 2.48
+ DateTime::TimeZone::Australia::Sydney 2.48
+ DateTime::TimeZone::CET 2.48
+ DateTime::TimeZone::CST6CDT 2.48
+ DateTime::TimeZone::Catalog 2.48
+ DateTime::TimeZone::EET 2.48
+ DateTime::TimeZone::EST 2.48
+ DateTime::TimeZone::EST5EDT 2.48
+ DateTime::TimeZone::Europe::Amsterdam 2.48
+ DateTime::TimeZone::Europe::Andorra 2.48
+ DateTime::TimeZone::Europe::Astrakhan 2.48
+ DateTime::TimeZone::Europe::Athens 2.48
+ DateTime::TimeZone::Europe::Belgrade 2.48
+ DateTime::TimeZone::Europe::Berlin 2.48
+ DateTime::TimeZone::Europe::Brussels 2.48
+ DateTime::TimeZone::Europe::Bucharest 2.48
+ DateTime::TimeZone::Europe::Budapest 2.48
+ DateTime::TimeZone::Europe::Chisinau 2.48
+ DateTime::TimeZone::Europe::Copenhagen 2.48
+ DateTime::TimeZone::Europe::Dublin 2.48
+ DateTime::TimeZone::Europe::Gibraltar 2.48
+ DateTime::TimeZone::Europe::Helsinki 2.48
+ DateTime::TimeZone::Europe::Istanbul 2.48
+ DateTime::TimeZone::Europe::Kaliningrad 2.48
+ DateTime::TimeZone::Europe::Kiev 2.48
+ DateTime::TimeZone::Europe::Kirov 2.48
+ DateTime::TimeZone::Europe::Lisbon 2.48
+ DateTime::TimeZone::Europe::London 2.48
+ DateTime::TimeZone::Europe::Luxembourg 2.48
+ DateTime::TimeZone::Europe::Madrid 2.48
+ DateTime::TimeZone::Europe::Malta 2.48
+ DateTime::TimeZone::Europe::Minsk 2.48
+ DateTime::TimeZone::Europe::Monaco 2.48
+ DateTime::TimeZone::Europe::Moscow 2.48
+ DateTime::TimeZone::Europe::Oslo 2.48
+ DateTime::TimeZone::Europe::Paris 2.48
+ DateTime::TimeZone::Europe::Prague 2.48
+ DateTime::TimeZone::Europe::Riga 2.48
+ DateTime::TimeZone::Europe::Rome 2.48
+ DateTime::TimeZone::Europe::Samara 2.48
+ DateTime::TimeZone::Europe::Saratov 2.48
+ DateTime::TimeZone::Europe::Simferopol 2.48
+ DateTime::TimeZone::Europe::Sofia 2.48
+ DateTime::TimeZone::Europe::Stockholm 2.48
+ DateTime::TimeZone::Europe::Tallinn 2.48
+ DateTime::TimeZone::Europe::Tirane 2.48
+ DateTime::TimeZone::Europe::Ulyanovsk 2.48
+ DateTime::TimeZone::Europe::Uzhgorod 2.48
+ DateTime::TimeZone::Europe::Vienna 2.48
+ DateTime::TimeZone::Europe::Vilnius 2.48
+ DateTime::TimeZone::Europe::Volgograd 2.48
+ DateTime::TimeZone::Europe::Warsaw 2.48
+ DateTime::TimeZone::Europe::Zaporozhye 2.48
+ DateTime::TimeZone::Europe::Zurich 2.48
+ DateTime::TimeZone::Floating 2.48
+ DateTime::TimeZone::HST 2.48
+ DateTime::TimeZone::Indian::Chagos 2.48
+ DateTime::TimeZone::Indian::Christmas 2.48
+ DateTime::TimeZone::Indian::Cocos 2.48
+ DateTime::TimeZone::Indian::Kerguelen 2.48
+ DateTime::TimeZone::Indian::Mahe 2.48
+ DateTime::TimeZone::Indian::Maldives 2.48
+ DateTime::TimeZone::Indian::Mauritius 2.48
+ DateTime::TimeZone::Indian::Reunion 2.48
+ DateTime::TimeZone::Local 2.48
+ DateTime::TimeZone::Local::Android 2.48
+ DateTime::TimeZone::Local::Unix 2.48
+ DateTime::TimeZone::Local::VMS 2.48
+ DateTime::TimeZone::MET 2.48
+ DateTime::TimeZone::MST 2.48
+ DateTime::TimeZone::MST7MDT 2.48
+ DateTime::TimeZone::OffsetOnly 2.48
+ DateTime::TimeZone::OlsonDB 2.48
+ DateTime::TimeZone::OlsonDB::Change 2.48
+ DateTime::TimeZone::OlsonDB::Observance 2.48
+ DateTime::TimeZone::OlsonDB::Rule 2.48
+ DateTime::TimeZone::OlsonDB::Zone 2.48
+ DateTime::TimeZone::PST8PDT 2.48
+ DateTime::TimeZone::Pacific::Apia 2.48
+ DateTime::TimeZone::Pacific::Auckland 2.48
+ DateTime::TimeZone::Pacific::Bougainville 2.48
+ DateTime::TimeZone::Pacific::Chatham 2.48
+ DateTime::TimeZone::Pacific::Chuuk 2.48
+ DateTime::TimeZone::Pacific::Easter 2.48
+ DateTime::TimeZone::Pacific::Efate 2.48
+ DateTime::TimeZone::Pacific::Fakaofo 2.48
+ DateTime::TimeZone::Pacific::Fiji 2.48
+ DateTime::TimeZone::Pacific::Funafuti 2.48
+ DateTime::TimeZone::Pacific::Galapagos 2.48
+ DateTime::TimeZone::Pacific::Gambier 2.48
+ DateTime::TimeZone::Pacific::Guadalcanal 2.48
+ DateTime::TimeZone::Pacific::Guam 2.48
+ DateTime::TimeZone::Pacific::Honolulu 2.48
+ DateTime::TimeZone::Pacific::Kanton 2.48
+ DateTime::TimeZone::Pacific::Kiritimati 2.48
+ DateTime::TimeZone::Pacific::Kosrae 2.48
+ DateTime::TimeZone::Pacific::Kwajalein 2.48
+ DateTime::TimeZone::Pacific::Majuro 2.48
+ DateTime::TimeZone::Pacific::Marquesas 2.48
+ DateTime::TimeZone::Pacific::Nauru 2.48
+ DateTime::TimeZone::Pacific::Niue 2.48
+ DateTime::TimeZone::Pacific::Norfolk 2.48
+ DateTime::TimeZone::Pacific::Noumea 2.48
+ DateTime::TimeZone::Pacific::Pago_Pago 2.48
+ DateTime::TimeZone::Pacific::Palau 2.48
+ DateTime::TimeZone::Pacific::Pitcairn 2.48
+ DateTime::TimeZone::Pacific::Pohnpei 2.48
+ DateTime::TimeZone::Pacific::Port_Moresby 2.48
+ DateTime::TimeZone::Pacific::Rarotonga 2.48
+ DateTime::TimeZone::Pacific::Tahiti 2.48
+ DateTime::TimeZone::Pacific::Tarawa 2.48
+ DateTime::TimeZone::Pacific::Tongatapu 2.48
+ DateTime::TimeZone::Pacific::Wake 2.48
+ DateTime::TimeZone::Pacific::Wallis 2.48
+ DateTime::TimeZone::UTC 2.48
+ DateTime::TimeZone::WET 2.48
+ requirements:
+ Class::Singleton 1.03
+ Cwd 3
+ ExtUtils::MakeMaker 0
+ File::Basename 0
+ File::Compare 0
+ File::Find 0
+ File::Spec 0
+ List::Util 1.33
+ Module::Runtime 0
+ Params::ValidationCompiler 0.13
+ Specio::Library::Builtins 0
+ Specio::Library::String 0
+ Try::Tiny 0
+ constant 0
+ namespace::autoclean 0
+ parent 0
+ perl 5.008004
+ strict 0
+ warnings 0
+ Devel-StackTrace-2.04
+ pathname: D/DR/DROLSKY/Devel-StackTrace-2.04.tar.gz
+ provides:
+ Devel::StackTrace 2.04
+ Devel::StackTrace::Frame 2.04
+ requirements:
+ ExtUtils::MakeMaker 0
+ File::Spec 0
+ Scalar::Util 0
+ overload 0
+ perl 5.006
+ strict 0
+ warnings 0
+ Dist-CheckConflicts-0.11
+ pathname: D/DO/DOY/Dist-CheckConflicts-0.11.tar.gz
+ provides:
+ Dist::CheckConflicts 0.11
+ requirements:
+ Carp 0
+ Exporter 0
+ ExtUtils::MakeMaker 6.30
+ Module::Runtime 0.009
+ base 0
+ strict 0
+ warnings 0
+ Eval-Closure-0.14
+ pathname: D/DO/DOY/Eval-Closure-0.14.tar.gz
+ provides:
+ Eval::Closure 0.14
+ requirements:
+ Carp 0
+ Exporter 0
+ ExtUtils::MakeMaker 0
+ Scalar::Util 0
+ constant 0
+ overload 0
+ strict 0
+ warnings 0
+ Exception-Class-1.45
+ pathname: D/DR/DROLSKY/Exception-Class-1.45.tar.gz
+ provides:
+ Exception::Class 1.45
+ Exception::Class::Base 1.45
+ requirements:
+ Carp 0
+ Class::Data::Inheritable 0.02
+ Devel::StackTrace 2.00
+ ExtUtils::MakeMaker 0
+ Scalar::Util 0
+ base 0
+ overload 0
+ perl 5.008001
+ strict 0
+ warnings 0
+ File-ShareDir-1.118
+ pathname: R/RE/REHSACK/File-ShareDir-1.118.tar.gz
+ provides:
+ File::ShareDir 1.118
+ requirements:
+ Carp 0
+ Class::Inspector 1.12
+ ExtUtils::MakeMaker 0
+ File::ShareDir::Install 0.13
+ File::Spec 0.80
+ perl 5.008001
+ warnings 0
+ File-ShareDir-Install-0.13
+ pathname: E/ET/ETHER/File-ShareDir-Install-0.13.tar.gz
+ provides:
+ File::ShareDir::Install 0.13
+ requirements:
+ Carp 0
+ Exporter 0
+ ExtUtils::MakeMaker 0
+ File::Spec 0
+ IO::Dir 0
+ perl 5.006
+ strict 0
+ warnings 0
+ MRO-Compat-0.13
+ pathname: H/HA/HAARG/MRO-Compat-0.13.tar.gz
+ provides:
+ MRO::Compat 0.13
+ requirements:
+ ExtUtils::MakeMaker 0
+ perl 5.006
+ Module-Build-0.4231
+ pathname: L/LE/LEONT/Module-Build-0.4231.tar.gz
+ provides:
+ Module::Build 0.4231
+ Module::Build::Base 0.4231
+ Module::Build::Compat 0.4231
+ Module::Build::Config 0.4231
+ Module::Build::Cookbook 0.4231
+ Module::Build::Dumper 0.4231
+ Module::Build::Notes 0.4231
+ Module::Build::PPMMaker 0.4231
+ Module::Build::Platform::Default 0.4231
+ Module::Build::Platform::MacOS 0.4231
+ Module::Build::Platform::Unix 0.4231
+ Module::Build::Platform::VMS 0.4231
+ Module::Build::Platform::VOS 0.4231
+ Module::Build::Platform::Windows 0.4231
+ Module::Build::Platform::aix 0.4231
+ Module::Build::Platform::cygwin 0.4231
+ Module::Build::Platform::darwin 0.4231
+ Module::Build::Platform::os2 0.4231
+ Module::Build::PodParser 0.4231
+ requirements:
+ CPAN::Meta 2.142060
+ Cwd 0
+ Data::Dumper 0
+ ExtUtils::CBuilder 0.27
+ ExtUtils::Install 0
+ ExtUtils::Manifest 0
+ ExtUtils::Mkbootstrap 0
+ ExtUtils::ParseXS 2.21
+ File::Basename 0
+ File::Compare 0
+ File::Copy 0
+ File::Find 0
+ File::Path 0
+ File::Spec 0.82
+ Getopt::Long 0
+ Module::Metadata 1.000002
+ Perl::OSType 1
+ Pod::Man 2.17
+ TAP::Harness 3.29
+ Text::Abbrev 0
+ Text::ParseWords 0
+ perl 5.006001
+ version 0.87
+ Module-Implementation-0.09
+ pathname: D/DR/DROLSKY/Module-Implementation-0.09.tar.gz
+ provides:
+ Module::Implementation 0.09
+ requirements:
+ Carp 0
+ ExtUtils::MakeMaker 0
+ Module::Runtime 0.012
+ Try::Tiny 0
+ strict 0
+ warnings 0
+ Module-Runtime-0.016
+ pathname: Z/ZE/ZEFRAM/Module-Runtime-0.016.tar.gz
+ provides:
+ Module::Runtime 0.016
+ requirements:
+ Module::Build 0
+ Test::More 0.41
+ perl 5.006
+ strict 0
+ warnings 0
+ Package-Stash-0.39
+ pathname: E/ET/ETHER/Package-Stash-0.39.tar.gz
+ provides:
+ Package::Stash 0.39
+ Package::Stash::PP 0.39
+ requirements:
+ B 0
+ Carp 0
+ Dist::CheckConflicts 0.02
+ ExtUtils::MakeMaker 0
+ Getopt::Long 0
+ Module::Implementation 0.06
+ Package::Stash::XS 0.26
+ Scalar::Util 0
+ Symbol 0
+ Text::ParseWords 0
+ constant 0
+ perl 5.008001
+ strict 0
+ warnings 0
+ Package-Stash-XS-0.29
+ pathname: E/ET/ETHER/Package-Stash-XS-0.29.tar.gz
+ provides:
+ Package::Stash::XS 0.29
+ requirements:
+ ExtUtils::MakeMaker 0
+ XSLoader 0
+ perl 5.008001
+ strict 0
+ warnings 0
+ Params-ValidationCompiler-0.30
+ pathname: D/DR/DROLSKY/Params-ValidationCompiler-0.30.tar.gz
+ provides:
+ Params::ValidationCompiler 0.30
+ Params::ValidationCompiler::Compiler 0.30
+ Params::ValidationCompiler::Exceptions 0.30
+ requirements:
+ B 0
+ Carp 0
+ Eval::Closure 0
+ Exception::Class 0
+ Exporter 0
+ ExtUtils::MakeMaker 0
+ List::Util 1.29
+ Scalar::Util 0
+ overload 0
+ strict 0
+ warnings 0
+ Role-Tiny-2.002004
+ pathname: H/HA/HAARG/Role-Tiny-2.002004.tar.gz
+ provides:
+ Role::Tiny 2.002004
+ Role::Tiny::With 2.002004
+ requirements:
+ Exporter 5.57
+ perl 5.006
+ Scalar-List-Utils-1.59
+ pathname: P/PE/PEVANS/Scalar-List-Utils-1.59.tar.gz
+ provides:
+ List::Util 1.59
+ List::Util::XS 1.59
+ Scalar::Util 1.59
+ Sub::Util 1.59
+ requirements:
+ ExtUtils::MakeMaker 0
+ perl 5.006
+ Specio-0.47
+ pathname: D/DR/DROLSKY/Specio-0.47.tar.gz
+ provides:
+ Specio 0.47
+ Specio::Coercion 0.47
+ Specio::Constraint::AnyCan 0.47
+ Specio::Constraint::AnyDoes 0.47
+ Specio::Constraint::AnyIsa 0.47
+ Specio::Constraint::Enum 0.47
+ Specio::Constraint::Intersection 0.47
+ Specio::Constraint::ObjectCan 0.47
+ Specio::Constraint::ObjectDoes 0.47
+ Specio::Constraint::ObjectIsa 0.47
+ Specio::Constraint::Parameterizable 0.47
+ Specio::Constraint::Parameterized 0.47
+ Specio::Constraint::Role::CanType 0.47
+ Specio::Constraint::Role::DoesType 0.47
+ Specio::Constraint::Role::Interface 0.47
+ Specio::Constraint::Role::IsaType 0.47
+ Specio::Constraint::Simple 0.47
+ Specio::Constraint::Structurable 0.47
+ Specio::Constraint::Structured 0.47
+ Specio::Constraint::Union 0.47
+ Specio::Declare 0.47
+ Specio::DeclaredAt 0.47
+ Specio::Exception 0.47
+ Specio::Exporter 0.47
+ Specio::Helpers 0.47
+ Specio::Library::Builtins 0.47
+ Specio::Library::Numeric 0.47
+ Specio::Library::Perl 0.47
+ Specio::Library::String 0.47
+ Specio::Library::Structured 0.47
+ Specio::Library::Structured::Dict 0.47
+ Specio::Library::Structured::Map 0.47
+ Specio::Library::Structured::Tuple 0.47
+ Specio::OO 0.47
+ Specio::PartialDump 0.47
+ Specio::Registry 0.47
+ Specio::Role::Inlinable 0.47
+ Specio::Subs 0.47
+ Specio::TypeChecks 0.47
+ Test::Specio 0.47
+ requirements:
+ B 0
+ Carp 0
+ Devel::StackTrace 0
+ Eval::Closure 0
+ Exporter 0
+ ExtUtils::MakeMaker 0
+ IO::File 0
+ List::Util 1.33
+ MRO::Compat 0
+ Module::Runtime 0
+ Role::Tiny 1.003003
+ Role::Tiny::With 0
+ Scalar::Util 0
+ Storable 0
+ Sub::Quote 0
+ Test::Fatal 0
+ Test::More 0.96
+ Try::Tiny 0
+ XString 0
+ overload 0
+ parent 0
+ perl 5.008
+ re 0
+ strict 0
+ version 0.83
+ warnings 0
+ Sub-Exporter-Progressive-0.001013
+ pathname: F/FR/FREW/Sub-Exporter-Progressive-0.001013.tar.gz
+ provides:
+ Sub::Exporter::Progressive 0.001013
+ requirements:
+ ExtUtils::MakeMaker 0
+ Sub-Identify-0.14
+ pathname: R/RG/RGARCIA/Sub-Identify-0.14.tar.gz
+ provides:
+ Sub::Identify 0.14
+ requirements:
+ ExtUtils::MakeMaker 0
+ Test::More 0
+ Sub-Quote-2.006006
+ pathname: H/HA/HAARG/Sub-Quote-2.006006.tar.gz
+ provides:
+ Sub::Defer 2.006006
+ Sub::Quote 2.006006
+ requirements:
+ ExtUtils::MakeMaker 0
+ Scalar::Util 0
+ perl 5.006
+ Test-Fatal-0.016
+ pathname: R/RJ/RJBS/Test-Fatal-0.016.tar.gz
+ provides:
+ Test::Fatal 0.016
+ requirements:
+ Carp 0
+ Exporter 5.57
+ ExtUtils::MakeMaker 0
+ Test::Builder 0
+ Try::Tiny 0.07
+ strict 0
+ warnings 0
+ Try-Tiny-0.30
+ pathname: E/ET/ETHER/Try-Tiny-0.30.tar.gz
+ provides:
+ Try::Tiny 0.30
+ requirements:
+ Carp 0
+ Exporter 5.57
+ ExtUtils::MakeMaker 0
+ constant 0
+ perl 5.006
+ strict 0
+ warnings 0
+ Variable-Magic-0.62
+ pathname: V/VP/VPIT/Variable-Magic-0.62.tar.gz
+ provides:
+ Variable::Magic 0.62
+ requirements:
+ Carp 0
+ Config 0
+ Exporter 0
+ ExtUtils::MakeMaker 0
+ IO::Handle 0
+ IO::Select 0
+ IPC::Open3 0
+ POSIX 0
+ Socket 0
+ Test::More 0
+ XSLoader 0
+ base 0
+ lib 0
+ perl 5.008
+ XString-0.005
+ pathname: A/AT/ATOOMIC/XString-0.005.tar.gz
+ provides:
+ XString 0.005
+ requirements:
+ ExtUtils::MakeMaker 0