名前付けに困っていたところに、CPAN 長いネームスペース大会 - にぽたん研究所やCPAN 階層の深いモジュール王選手権 - id:kazuhookuのメモ置き場をみて、CPANモジュールからアイデアをもらおうと思ってやってみた。
とりあえず1000回以上使われていたのは以下の名前。
(2009/02/20時点)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
|
3060 times: Net
2581 times: XML
2287 times: Plugin
1964 times: Bio
1743 times: Data
1696 times: HTML
1427 times: API
1346 times: WWW
1310 times: Test
1296 times: Class
1176 times: eBay
1140 times: Apache
1105 times: DateTime
1083 times: Text
|
さすがに、Net,XML,HTML,WWWなど、ウェブ関係が多いようです。
あと、Textが多いのはPerlの面目躍如でしょうか。テキスト処理は十八番ですからね。
ちなみに、200回以上使われている名前は、138個。
100回以上200回未満は、171個。
10回以上100回未満は、2109個。
5回以上10回未満は、1686個。
2回以上5回未満は、5803個。
1回だけは、21289個でした。
ソースコード
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
|
#!/usr/bin/perl
use strict;
use warnings;
use CPAN::Config;
use IO::Uncompress::Gunzip qw($GunzipError);
use constant PRINT_TIMES => 1000;
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 @names = split /::/, $package;
foreach my $name (@names) {
$ranking{$name}++;
}
}
$z->close;
my $number = 1;
for my $name (sort { $ranking{$b} <=> $ranking{$a} } keys %ranking) {
last if $ranking{$name} < PRINT_TIMES();
printf "%5d times: %s\n", $ranking{$name}, $name;
}
|
200回以上1000回未満の名前は以下のとおり。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
|
988 times: File
956 times: DBIx
943 times: Object
927 times: CGI
861 times: Template
850 times: POE
820 times: Mail
818 times: TimeZone
763 times: App
746 times: DataType
742 times: Catalyst
732 times: Locale
702 times: Config
700 times: Component
658 times: Meta
635 times: Simple
620 times: Perl
611 times: Filter
609 times: DBI
599 times: Server
593 times: DB
591 times: Search
582 times: HTTP
573 times: Base
561 times: Tools
545 times: Devel
544 times: Parse
530 times: Model
524 times: Parser
513 times: Games
507 times: Acme
500 times: Lingua
498 times: Math
489 times: Tk
489 times: Module
469 times: Engine
465 times: Amazon
462 times: Util
458 times: Win32
453 times: Client
452 times: Image
450 times: ICal
442 times: WebService
441 times: Session
439 times: UMMF
434 times: Call
432 times: Yahoo
428 times: Run
426 times: IO
409 times: Schema
381 times: Log
365 times: Jifty
357 times: SQL
355 times: Tie
353 times: Wx
348 times: View
333 times: Google
333 times: Command
330 times: Pod
324 times: Business
320 times: Response
315 times: PDF
315 times: Marketing
312 times: Cache
311 times: Graph
307 times: Request
306 times: Crypt
306 times: Apache2
305 times: Widget
305 times: Message
304 times: Driver
304 times: Backend
292 times: Paper
291 times: Specs
291 times: Utils
288 times: Element
284 times: Node
281 times: Protocol
281 times: Web
281 times: PiseApplication
278 times: Geo
278 times: MooseX
274 times: Tree
274 times: Graphics
273 times: DRI
273 times: SOAP
272 times: Audio
270 times: RDF
268 times: Email
268 times: America
268 times: Validate
267 times: Field
267 times: Date
264 times: Application
263 times: Kwiki
263 times: Query
260 times: Controller
260 times: Enum
258 times: Info
256 times: Language
255 times: Form
255 times: Exception
251 times: Algorithm
250 times: Encode
249 times: Critic
245 times: Action
243 times: Plagger
236 times: Agent
235 times: Bundle
232 times: Rose
223 times: Store
222 times: Finance
219 times: Type
218 times: Chart
218 times: Storage
217 times: String
217 times: Value
217 times: UI
215 times: Core
207 times: AFP
206 times: Handler
206 times: Error
204 times: Gtk2
200 times: Policy
|