CPAN 階層の深いモジュール王選手権
CPAN 長いネームスペース大会 - にぽたん研究所 を見て、階層の深さだとどうなるかなと思ってやってみた。
1: perfSONAR_PS::Datatypes::v2_0::nmtl3::Topology::Domain::Node::Port::IpAddress 1: perfSONAR_PS::Datatypes::v2_0::nmtl4::Message::Metadata::Subject::EndPointPair::EndPoint 1: perfSONAR_PS::Datatypes::v2_0::nmwg::Message::Data::Key::Parameters::Parameter 1: perfSONAR_PS::Datatypes::v2_0::nmwg::Message::Metadata::Key::Parameters::Parameter 1: perfSONAR_PS::Datatypes::v2_0::nmwg::Message::Metadata::Subject::Parameters::Parameter 1: perfSONAR_PS::Datatypes::v2_0::nmwgt::Message::Metadata::Subject::EndPointPair::Dst 1: perfSONAR_PS::Datatypes::v2_0::nmwgt::Message::Metadata::Subject::EndPointPair::Src 8: HH::Unispool::Config::File::Token::Numbered::Device::0 8: HH::Unispool::Config::File::Token::Numbered::Device::1 8: HH::Unispool::Config::File::Token::Numbered::Device::2 8: HH::Unispool::Config::File::Token::Numbered::Device::3 8: HH::Unispool::Config::File::Token::Numbered::Device::4 8: HH::Unispool::Config::File::Token::Numbered::Device::5 8: HH::Unispool::Config::File::Token::Numbered::Device::6 8: HH::Unispool::Config::File::Token::Numbered::Device::7 8: HH::Unispool::Config::File::Token::Numbered::Device::Group 8: HH::Unispool::Config::File::Token::Numbered::Device::Info 8: HH::Unispool::Config::File::Token::Numbered::Device::P 8: HH::Unispool::Config::File::Token::Numbered::System::3 8: HH::Unispool::Config::File::Token::Numbered::System::6 8: HH::Unispool::Config::File::Token::Numbered::System::7 8: HH::Unispool::Config::File::Token::Numbered::System::8 8: HH::Unispool::Config::File::Token::Numbered::System::Info 8: MooseX::Emulate::Class::Accessor::Fast::Meta::Role::Attribute 8: POE::Component::IRC::Plugin::CPAN::LinksToDocs::No404s::Remember 8: perfSONAR_PS::Datatypes::v2_0::nmtb::Topology::Domain::Node::Name 8: perfSONAR_PS::Datatypes::v2_0::nmtl3::Topology::Domain::Node::Port 8: perfSONAR_PS::Datatypes::v2_0::nmtl4::Message::Metadata::Subject::EndPointPair 8: perfSONAR_PS::Datatypes::v2_0::nmtm::Message::Data::CommonTime::End 8: perfSONAR_PS::Datatypes::v2_0::nmtm::Message::Data::CommonTime::Start 8: perfSONAR_PS::Datatypes::v2_0::nmwg::Message::Data::Key::Parameters 8: perfSONAR_PS::Datatypes::v2_0::nmwg::Message::Metadata::Key::Parameters 8: perfSONAR_PS::Datatypes::v2_0::nmwg::Message::Metadata::Parameters::Parameter 8: perfSONAR_PS::Datatypes::v2_0::nmwgt::Message::Metadata::Subject::EndPointPair 8: perfSONAR_PS::Datatypes::v2_0::pinger::Message::Data::CommonTime::Datum 8: perfSONAR_PS::Datatypes::v2_0::pinger::Message::Data::Key::Parameters 8: perfSONAR_PS::Datatypes::v2_0::pinger::Message::Metadata::Key::Parameters 8: perfSONAR_PS::Datatypes::v2_0::pinger::Message::Metadata::Subject::Parameters 39: Authen::PluggableCaptcha::Render::Image::Imager::layers::bg 39: Authen::PluggableCaptcha::Render::Image::Imager::layers::text 39: Bot::BasicBot::Pluggable::Module::SimpleBlog::Store::SQLite 39: CGI::Application::Plugin::Authentication::Driver::Authen::Simple 39: CGI::Application::Plugin::Authentication::Driver::Filter::crypt 39: CGI::Application::Plugin::Authentication::Driver::Filter::lc 39: CGI::Application::Plugin::Authentication::Driver::Filter::md5 39: CGI::Application::Plugin::Authentication::Driver::Filter::sha1 39: CGI::Application::Plugin::Authentication::Driver::Filter::strip 39: CGI::Application::Plugin::Authentication::Driver::Filter::uc 39: CGI::Application::Plugin::DBIProfile::Graph::HTML::Horizontal 39: CGI::Widget::DBI::Search::Display::TEST::Grid 39: CGI::Widget::DBI::Search::Display::TEST::Table 39: CGI::Widget::DBI::Search::Display::TEST::TestCase 39: Catalyst::Plugin::Authentication::Store::DBIC::User::CDBI 39: Catalyst::Plugin::Upload::Image::Magick::Thumbnail::Fixed 39: Data::Conveyor::Value::Ticket::Payload::Instruction::Command 39: Data::Conveyor::YAML::Active::Payload::Instruction::Container 39: Data::ICal::TimeZone::Object::America::Argentina::Buenos_Aires 39: Data::ICal::TimeZone::Object::America::Argentina::Catamarca 39: Data::ICal::TimeZone::Object::America::Argentina::Cordoba 39: Data::ICal::TimeZone::Object::America::Argentina::Jujuy 39: Data::ICal::TimeZone::Object::America::Argentina::La_Rioja 39: Data::ICal::TimeZone::Object::America::Argentina::Mendoza 39: Data::ICal::TimeZone::Object::America::Argentina::Rio_Gallegos 39: Data::ICal::TimeZone::Object::America::Argentina::San_Juan 39: Data::ICal::TimeZone::Object::America::Argentina::Tucuman 39: Data::ICal::TimeZone::Object::America::Argentina::Ushuaia 39: Data::ICal::TimeZone::Object::America::Indiana::Indianapolis 39: Data::ICal::TimeZone::Object::America::Indiana::Knox 39: Data::ICal::TimeZone::Object::America::Indiana::Marengo 39: Data::ICal::TimeZone::Object::America::Indiana::Petersburg 39: Data::ICal::TimeZone::Object::America::Indiana::Tell_City 39: Data::ICal::TimeZone::Object::America::Indiana::Vevay 39: Data::ICal::TimeZone::Object::America::Indiana::Vincennes 39: Data::ICal::TimeZone::Object::America::Indiana::Winamac 39: Data::ICal::TimeZone::Object::America::Kentucky::Louisville 39: Data::ICal::TimeZone::Object::America::Kentucky::Monticello 39: Data::ICal::TimeZone::Object::America::North_Dakota::Center 39: Data::ICal::TimeZone::Object::America::North_Dakota::New_Salem 39: Finance::DST::FAN::Mail::Download::Plugin::Rename 39: Finance::DST::FAN::Mail::Download::Plugin::Split 39: Finance::DST::FAN::Mail::Download::Plugin::Unzip 39: HH::Unispool::Config::File::Token::Comment::Cs 39: HH::Unispool::Config::File::Token::Comment::Date 39: HH::Unispool::Config::File::Token::Comment::Device 39: HH::Unispool::Config::File::Token::Comment::Filter 39: HH::Unispool::Config::File::Token::Comment::Group 39: HH::Unispool::Config::File::Token::Comment::Head 39: HH::Unispool::Config::File::Token::Comment::Misc 39: HH::Unispool::Config::File::Token::Comment::NetDesc 39: HH::Unispool::Config::File::Token::Comment::RSys 39: HH::Unispool::Config::File::Token::Comment::Scope 39: HH::Unispool::Config::File::Token::Comment::Tail 39: HH::Unispool::Config::File::Token::Numbered::Device 39: HH::Unispool::Config::File::Token::Numbered::Network 39: HH::Unispool::Config::File::Token::Numbered::System 39: HH::Unispool::Config::File::Token::Numbered::X 39: HH::Unispool::Config::File::Token::Unnumbered::Bcs 39: HH::Unispool::Config::File::Token::Unnumbered::CSN 39: HH::Unispool::Config::File::Token::Unnumbered::Cs 39: HH::Unispool::Config::File::Token::Unnumbered::CsBcs 39: HH::Unispool::Config::File::Token::Unnumbered::Filter 39: HH::Unispool::Config::File::Token::Unnumbered::Host 39: HH::Unispool::Config::File::Token::Unnumbered::Misc 39: JSON::RPC::Common::Procedure::Return::Version_1_0::Error 39: JSON::RPC::Common::Procedure::Return::Version_1_1::Error 39: JSON::RPC::Common::Procedure::Return::Version_2_0::Error 39: Jifty::Plugin::Authentication::Bitcard::Mixin::Model::User 39: Jifty::Plugin::Authentication::CAS::Mixin::Model::User 39: Jifty::Plugin::Authentication::Facebook::Mixin::Model::User 39: Jifty::Plugin::Authentication::Ldap::Mixin::Model::User 39: Jifty::Plugin::Authentication::Password::Mixin::Model::User 39: Lingua::JA::Summarize::Extract::Plugin::Parser::Ngram 39: Lingua::JA::Summarize::Extract::Plugin::Parser::NgramSimple 39: Lingua::JA::Summarize::Extract::Plugin::Parser::Trim 39: Lingua::JA::Summarize::Extract::Plugin::Scoring::Base 39: Lingua::JA::Summarize::Extract::Plugin::Sentence::Base 39: Lingua::JA::Summarize::Extract::Plugin::Sentence::Tiny 39: Moose::Meta::Attribute::Custom::Trait::KiokuDB::DoNotSerialize 39: Moose::Meta::Attribute::Custom::Trait::KiokuDB::Lazy 39: MooseX::Clone::Meta::Attribute::Trait::Clone::Base 39: MooseX::Emulate::Class::Accessor::Fast::Meta::Accessor 39: Myco::Base::Entity::Meta::Attribute::UI::Test 39: Myco::Base::Entity::Meta::UI::List::Test 39: Myco::Base::Entity::Meta::UI::View::Test 39: Net::DRI::Protocol::EPP::Extensions::AERO::Contact 39: Net::DRI::Protocol::EPP::Extensions::AERO::Domain 39: Net::DRI::Protocol::EPP::Extensions::AFNIC::Contact 39: Net::DRI::Protocol::EPP::Extensions::AFNIC::Domain 39: Net::DRI::Protocol::EPP::Extensions::AFNIC::Notifications 39: Net::DRI::Protocol::EPP::Extensions::AFNIC::Status 39: Net::DRI::Protocol::EPP::Extensions::ASIA::CED 39: Net::DRI::Protocol::EPP::Extensions::ASIA::IPR 39: Net::DRI::Protocol::EPP::Extensions::AT::ATResult 39: Net::DRI::Protocol::EPP::Extensions::AT::Contact 39: Net::DRI::Protocol::EPP::Extensions::AT::Domain 39: Net::DRI::Protocol::EPP::Extensions::AT::IOptions 39: Net::DRI::Protocol::EPP::Extensions::AT::Message 39: Net::DRI::Protocol::EPP::Extensions::AT::Result 39: Net::DRI::Protocol::EPP::Extensions::AU::Domain 39: Net::DRI::Protocol::EPP::Extensions::Afilias::IDNLanguage 39: Net::DRI::Protocol::EPP::Extensions::Afilias::Restore 39: Net::DRI::Protocol::EPP::Extensions::BR::Contact 39: Net::DRI::Protocol::EPP::Extensions::BR::Domain 39: Net::DRI::Protocol::EPP::Extensions::CAT::Contact 39: Net::DRI::Protocol::EPP::Extensions::CAT::DefensiveRegistration 39: Net::DRI::Protocol::EPP::Extensions::CAT::Domain 39: Net::DRI::Protocol::EPP::Extensions::COOP::Contact 39: Net::DRI::Protocol::EPP::Extensions::CZ::Contact 39: Net::DRI::Protocol::EPP::Extensions::CZ::Domain 39: Net::DRI::Protocol::EPP::Extensions::CZ::NSSET 39: Net::DRI::Protocol::EPP::Extensions::CentralNic::Release 39: Net::DRI::Protocol::EPP::Extensions::CentralNic::TTL 39: Net::DRI::Protocol::EPP::Extensions::CentralNic::WebForwarding 39: Net::DRI::Protocol::EPP::Extensions::DNSBE::Contact 39: Net::DRI::Protocol::EPP::Extensions::DNSBE::Domain 39: Net::DRI::Protocol::EPP::Extensions::DNSBE::Message 39: Net::DRI::Protocol::EPP::Extensions::E164Validation::RFC5076 39: Net::DRI::Protocol::EPP::Extensions::EURid::Contact 39: Net::DRI::Protocol::EPP::Extensions::EURid::Domain 39: Net::DRI::Protocol::EPP::Extensions::EURid::Message 39: Net::DRI::Protocol::EPP::Extensions::EURid::Sunrise 39: Net::DRI::Protocol::EPP::Extensions::FCCN::Contact 39: Net::DRI::Protocol::EPP::Extensions::FCCN::Domain 39: Net::DRI::Protocol::EPP::Extensions::LU::Contact 39: Net::DRI::Protocol::EPP::Extensions::LU::Domain 39: Net::DRI::Protocol::EPP::Extensions::LU::Poll 39: Net::DRI::Protocol::EPP::Extensions::LU::Status 39: Net::DRI::Protocol::EPP::Extensions::MOBI::Domain 39: Net::DRI::Protocol::EPP::Extensions::NAME::EmailFwd 39: Net::DRI::Protocol::EPP::Extensions::NO::Contact 39: Net::DRI::Protocol::EPP::Extensions::NO::Domain 39: Net::DRI::Protocol::EPP::Extensions::NO::Host 39: Net::DRI::Protocol::EPP::Extensions::NO::Message 39: Net::DRI::Protocol::EPP::Extensions::NO::Result 39: Net::DRI::Protocol::EPP::Extensions::NeuLevel::UIN 39: Net::DRI::Protocol::EPP::Extensions::Nominet::Account 39: Net::DRI::Protocol::EPP::Extensions::Nominet::Contact 39: Net::DRI::Protocol::EPP::Extensions::Nominet::Domain 39: Net::DRI::Protocol::EPP::Extensions::Nominet::Host 39: Net::DRI::Protocol::EPP::Extensions::Nominet::Notifications 39: Net::DRI::Protocol::EPP::Extensions::PL::Connection 39: Net::DRI::Protocol::EPP::Extensions::PL::Contact 39: Net::DRI::Protocol::EPP::Extensions::PL::Domain 39: Net::DRI::Protocol::EPP::Extensions::PL::Message 39: Net::DRI::Protocol::EPP::Extensions::PRO::AV 39: Net::DRI::Protocol::EPP::Extensions::PRO::Domain 39: Net::DRI::Protocol::EPP::Extensions::SE::Extensions 39: Net::DRI::Protocol::EPP::Extensions::US::Contact 39: Net::DRI::Protocol::EPP::Extensions::VeriSign::IDNLanguage 39: Net::DRI::Protocol::EPP::Extensions::VeriSign::JobsContact 39: Net::DRI::Protocol::EPP::Extensions::VeriSign::NameStore 39: Net::DRI::Protocol::EPP::Extensions::VeriSign::PollLowBalance 39: Net::DRI::Protocol::EPP::Extensions::VeriSign::PollRGP 39: Net::DRI::Protocol::EPP::Extensions::VeriSign::Sync 39: Net::DRI::Protocol::EPP::Extensions::VeriSign::WhoisInfo 39: Net::Frame::Layer::OSPF::Lsa::Router::Link 39: Ocsinventory::Agent::Backend::OS::BSD::Archs::Alpha 39: Ocsinventory::Agent::Backend::OS::BSD::Archs::I386 39: Ocsinventory::Agent::Backend::OS::BSD::Archs::Sgimips 39: Ocsinventory::Agent::Backend::OS::BSD::Archs::Sparc 39: Ocsinventory::Agent::Backend::OS::Generic::Dmidecode::Bios 39: Ocsinventory::Agent::Backend::OS::Generic::Dmidecode::Memory 39: Ocsinventory::Agent::Backend::OS::Generic::Dmidecode::Ports 39: Ocsinventory::Agent::Backend::OS::Generic::Dmidecode::Slots 39: Ocsinventory::Agent::Backend::OS::Generic::Lspci::Controllers 39: Ocsinventory::Agent::Backend::OS::Generic::Lspci::Modems 39: Ocsinventory::Agent::Backend::OS::Generic::Lspci::Sounds 39: Ocsinventory::Agent::Backend::OS::Generic::Lspci::Videos 39: Ocsinventory::Agent::Backend::OS::Generic::Packaging::BSDpkg 39: Ocsinventory::Agent::Backend::OS::Generic::Packaging::Deb 39: Ocsinventory::Agent::Backend::OS::Generic::Packaging::Gentoo 39: Ocsinventory::Agent::Backend::OS::Generic::Packaging::RPM 39: Ocsinventory::Agent::Backend::OS::Linux::Archs::PowerPC 39: Ocsinventory::Agent::Backend::OS::Linux::Distro::Debian 39: Ocsinventory::Agent::Backend::OS::Linux::Distro::Fedora 39: Ocsinventory::Agent::Backend::OS::Linux::Distro::Gentoo 39: Ocsinventory::Agent::Backend::OS::Linux::Distro::Knoppix 39: Ocsinventory::Agent::Backend::OS::Linux::Distro::Mandrake 39: Ocsinventory::Agent::Backend::OS::Linux::Distro::Mandriva 39: Ocsinventory::Agent::Backend::OS::Linux::Distro::Redhat 39: Ocsinventory::Agent::Backend::OS::Linux::Distro::Slackware 39: Ocsinventory::Agent::Backend::OS::Linux::Distro::SuSE 39: Ocsinventory::Agent::Backend::OS::Linux::Distro::Trustix 39: Ocsinventory::Agent::Backend::OS::Linux::Distro::Ubuntu 39: Ocsinventory::Agent::Backend::OS::Linux::Network::IPv4 39: Ocsinventory::Agent::Backend::OS::Linux::Network::Networks 39: PDF::API2::Resource::XObject::Form::BarCode::codabar 39: PDF::API2::Resource::XObject::Form::BarCode::code128 39: PDF::API2::Resource::XObject::Form::BarCode::code3of9 39: PDF::API2::Resource::XObject::Form::BarCode::ean13 39: PDF::API2::Resource::XObject::Form::BarCode::int2of5 39: POE::Component::IRC::Plugin::CPAN::LinksToDocs::No404s 39: POE::Component::IRC::Plugin::CSS::PropertyInfo::Data 39: POE::Component::IRC::Plugin::HTML::AttributeInfo::Data 39: POE::Component::IRC::Plugin::Syntax::Highlight::CSS 39: POE::Component::IRC::Plugin::Syntax::Highlight::HTML 39: POE::Component::IRC::Plugin::WWW::Alexa::TrafficRank 39: POE::Component::IRC::Plugin::WWW::CPANRatings::RSS 39: POE::Component::IRC::Plugin::WWW::Cache::Google 39: POE::Component::IRC::Plugin::WWW::Google::Time 39: POE::Component::IRC::Plugin::WWW::OhNoRobotCom::Search 39: POE::Component::IRC::Plugin::WWW::XKCD::AsText 39: POE::Component::MessageQueue::Storage::Structure::DLList::Cell 39: POE::Component::SmokeBox::Backend::CPAN::Reporter::Smoker 39: POE::Component::SmokeBox::Backend::Test::SmokeBox::Mini 39: POE::Component::WWW::Pastebin::Bot::Pastebot::Create 39: Perl::Critic::Exception::Configuration::Option::Global::ExtraParameter 39: Perl::Critic::Exception::Configuration::Option::Global::ParameterValue 39: Perl::Critic::Exception::Configuration::Option::Policy::ExtraParameter 39: Perl::Critic::Exception::Configuration::Option::Policy::ParameterValue 39: RSS::Video::Google::Channel::Item::Media::Content 39: RSS::Video::Google::Channel::Item::Media::Player 39: RSS::Video::Google::Channel::Item::Media::Thumbnail 39: Reaction::InterfaceModel::Action::DBIC::User::Role::SetPassword 39: Reaction::UI::ViewPort::Collection::Grid::Member::WithActions 39: Reaction::UI::ViewPort::Field::Role::Mutable::Simple 39: Reaction::UI::Widget::Collection::Grid::Member::WithActions 39: Rose::DB::Object::Metadata::Column::Epoch::HiRes 39: Rose::DB::Object::Metadata::Column::Pg::Bytea 39: Rose::DB::Object::Metadata::Column::Pg::Chkpass 39: Rose::DBx::Object::I18N::Metadata::Column::IsTranslation 39: Rose::DBx::Object::I18N::Metadata::Column::Language 39: Rose::HTML::Form::Field::DateTime::Split::MDYHMS 39: Rose::HTML::Form::Field::DateTime::Split::MonthDayYear 39: Rose::HTML::Form::Field::PhoneNumber::US::Split 39: Rose::HTML::Form::Field::Time::Split::HourMinuteSecond 39: SQL::Translator::Producer::DBIx::Class::File::Simple 39: Sys::Info::Driver::Unknown::Device::CPU::Env 39: Sys::Info::Driver::Windows::Device::CPU::WMI 39: Template::Refine::Processor::Rule::Transform::Replace::WithText 39: WWW::Restaurant::DE::Munich::Edison::Menu::Lunch 39: eBay::API::XML::Tools::CodeGen::XSD::Annotation 39: eBay::API::XML::Tools::CodeGen::XSD::BaseCodeGenDataType 39: eBay::API::XML::Tools::CodeGen::XSD::CodeGenApiCall 39: eBay::API::XML::Tools::CodeGen::XSD::CodeGenBaseCallGenClass 39: eBay::API::XML::Tools::CodeGen::XSD::CodeGenComplexDataType 39: eBay::API::XML::Tools::CodeGen::XSD::CodeGenEnumDataType 39: eBay::API::XML::Tools::CodeGen::XSD::CodeGenReleaseClass 39: eBay::API::XML::Tools::CodeGen::XSD::CodeGenRequestResponseType 39: eBay::API::XML::Tools::CodeGen::XSD::CodeGenSimpleDataType 39: eBay::API::XML::Tools::CodeGen::XSD::Element 39: eBay::API::XML::Tools::CodeGen::XSD::EnumElement 39: perfSONAR_PS::Datatypes::v2_0::average::Message::Metadata::Parameters 39: perfSONAR_PS::Datatypes::v2_0::average::Message::Metadata::Subject 39: perfSONAR_PS::Datatypes::v2_0::cdf::Message::Metadata::Parameters 39: perfSONAR_PS::Datatypes::v2_0::cdf::Message::Metadata::Subject 39: perfSONAR_PS::Datatypes::v2_0::histogram::Message::Metadata::Parameters 39: perfSONAR_PS::Datatypes::v2_0::histogram::Message::Metadata::Subject 39: perfSONAR_PS::Datatypes::v2_0::max::Message::Metadata::Parameters 39: perfSONAR_PS::Datatypes::v2_0::max::Message::Metadata::Subject 39: perfSONAR_PS::Datatypes::v2_0::mean::Message::Metadata::Parameters 39: perfSONAR_PS::Datatypes::v2_0::mean::Message::Metadata::Subject 39: perfSONAR_PS::Datatypes::v2_0::median::Message::Metadata::Parameters 39: perfSONAR_PS::Datatypes::v2_0::median::Message::Metadata::Subject 39: perfSONAR_PS::Datatypes::v2_0::min::Message::Metadata::Parameters 39: perfSONAR_PS::Datatypes::v2_0::min::Message::Metadata::Subject 39: perfSONAR_PS::Datatypes::v2_0::nmwg::Message::Data::CommonTime 39: perfSONAR_PS::Datatypes::v2_0::nmwg::Message::Data::Key 39: perfSONAR_PS::Datatypes::v2_0::nmwg::Message::Metadata::Key 39: perfSONAR_PS::Datatypes::v2_0::nmwg::Message::Metadata::Parameters 39: perfSONAR_PS::Datatypes::v2_0::nmwg::Message::Metadata::Subject 39: perfSONAR_PS::Datatypes::v2_0::nmwg::Message::Parameters::Parameter 39: perfSONAR_PS::Datatypes::v2_0::nmwgr::Message::Data::Datum 39: perfSONAR_PS::Datatypes::v2_0::pinger::Message::Data::CommonTime 39: perfSONAR_PS::Datatypes::v2_0::pinger::Message::Data::Datum 39: perfSONAR_PS::Datatypes::v2_0::pinger::Message::Metadata::Parameters 39: perfSONAR_PS::Datatypes::v2_0::pinger::Message::Metadata::Subject 39: perfSONAR_PS::Datatypes::v2_0::pingertopo::Topology::Domain::Node 39: perfSONAR_PS::Datatypes::v2_0::select::Message::Metadata::Parameters 39: perfSONAR_PS::Datatypes::v2_0::select::Message::Metadata::Subject
コード。
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 = @{[ split /::/, $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: %s\n", $rank, $package; ++$number; } last if $number >= PRINT_BEST(); }