February 17, 2009
CPAN 長いネームスペース大会
「FormValidator::Simple::Plugin::Japanese の依存ライブラリを減らしつつ perl5.8 的な Unicode 使用スタイルにして高速化をはかるパッチ - TokuLog 改めB日記」 あたりに関連して、某 IRC にて…
(2009 年 2 月 17 日現在)
コード:
現実は全然長すぎるよ。。
ちなみに、あまりにつまらない結果なので、10 位までしか出してないですが、1,000 位まで出した (ちなみに 56 文字で 906 位タイというのが 98 個あったので、1,000 位までの総数は 1,003 個) 場合、
そして、予想に反して、
さぁ、すごい長くて素敵な名前を考えて、トップに躍り出るチャンスだよ!
みんな頑張ってね!
俺は空気読む子だから頑張らないよ!
19:23 >nipotan< FormValidator::Simple::Plugin::Japanese は、ということで、何が長いのか、ホントにベスト 10 候補なのか、調べてみたよ
19:24 >nipotan< Number::Phone::JP フンフンまわりが重いような希ガス
19:24 >nipotan< つか、U::RD にしても、N::P::J にしても俺じゃねぇか
19:24 <hid*******> w
19:26 <Yap***> www
19:27 >nipotan< FormValidator::Simple::Plugin::Number::Phone::JP でしたっけ
19:27 >nipotan< すっごい長い名前w
19:27 <kan**********> www
19:29 <hid*******> CPANで長いネームスペース大会でベスト10候補ですね
19:29 <tok***********> いやー
19:29 <tok***********> 本当に長いのはもっともっと長かった気がする
19:30 <tok***********> Acme に死ぬほど長いのがあったような
19:30 <tok***********> Acme::Super::Hyper::Very::Long::Long::Module::Name.pm みたいな
19:30 <ots****> Acme::JugemJugemGogouno... かとおもった
19:30 <hid*******> w
(2009 年 2 月 17 日現在)
コード:
#!perl
use strict;
use warnings;
use CPAN::Config;
use IO::Uncompress::Gunzip qw($GunzipError);
use constant PRINT_BEST => 10;
my $package_file =
sprintf "%s/modules/02packages.details.txt.gz",
$CPAN::Config->{keep_source_where};
my %ranking = ();
my $z = IO::Uncompress::Gunzip->new($package_file) or die "$GunzipError\n";
while (my $line = $z->getline) {
my($package) = split /\s+/, $line, 2;
my $length = length $package;
$ranking{$length} ||= [];
push @{$ranking{$length}}, $package;
}
$z->close;
my $number = 1;
my $rank;
for my $length (sort { $b <=> $a } keys %ranking) {
$rank = $number;
for my $package (sort @{$ranking{$length}}) {
printf "%2d: %d bytes: %s\n", $rank, $length, $package;
++$number;
}
last if $number >= PRINT_BEST();
}
で、結果はこうなったよ。| 順位 | 文字数 | ネームスペース |
|---|---|---|
| 1 | 96 | eBay::API::XML::Call::AddTransactionConfirmationItem::AddTransactionConfirmationItemResponseType |
| 2 | 95 | eBay::API::XML::Call::AddTransactionConfirmationItem::AddTransactionConfirmationItemRequestType |
| 3 | 94 | Perl::Critic::Policy::ControlStructures::ProhibitNegativeExpressionsInUnlessAndUntilConditions |
| 4 | 92 | eBay::API::XML::Call::AddMemberMessageAAQToPartner::AddMemberMessageAAQToPartnerResponseType |
| 4 | 92 | eBay::API::XML::Call::AddMemberMessagesAAQToBidder::AddMemberMessagesAAQToBidderResponseType |
| 4 | 92 | eBay::API::XML::Call::GetLiveAuctionCatalogDetails::GetLiveAuctionCatalogDetailsResponseType |
| 4 | 92 | eBay::API::XML::Call::GetStoreCategoryUpdateStatus::GetStoreCategoryUpdateStatusResponseType |
| 4 | 92 | eBay::API::XML::Call::ValidateTestUserRegistration::ValidateTestUserRegistrationResponseType |
| 9 | 91 | eBay::API::XML::Call::AddMemberMessageAAQToPartner::AddMemberMessageAAQToPartnerRequestType |
| 9 | 91 | eBay::API::XML::Call::AddMemberMessagesAAQToBidder::AddMemberMessagesAAQToBidderRequestType |
| 9 | 91 | eBay::API::XML::Call::GetLiveAuctionCatalogDetails::GetLiveAuctionCatalogDetailsRequestType |
| 9 | 91 | eBay::API::XML::Call::GetStoreCategoryUpdateStatus::GetStoreCategoryUpdateStatusRequestType |
| 9 | 91 | eBay::API::XML::Call::ValidateTestUserRegistration::ValidateTestUserRegistrationRequestType |
現実は全然長すぎるよ。。
ちなみに、あまりにつまらない結果なので、10 位までしか出してないですが、1,000 位まで出した (ちなみに 56 文字で 906 位タイというのが 98 個あったので、1,000 位までの総数は 1,003 個) 場合、
eBay::API::XML::から始まるものが 498 個Perl::Critic::から始まるものが 127 個perfSONAR_PS::Datatypes::v2_0::から始まるものが 55 個UMMF::UML::MetaModel::から始まるものが 46 個UMMF::UML_1_5::から始まるものが 45 個
そして、予想に反して、
Acme:: から始まるものは、1,000 位までの中で 0 個でした。さぁ、すごい長くて素敵な名前を考えて、トップに躍り出るチャンスだよ!
みんな頑張ってね!
俺は空気読む子だから頑張らないよ!