From: Wyvern of Wyvern Date: 1998-10-14T07:51:05+09:00 Subject: [ruby-list:10074] array. 田中です。 えーとすみません、連想配列の使いかたが良く分からないのですが、 ruby にのりかえるのは、ruby 本がでてからでいいや、と思って待っていたの ですがなかなかでないので、 やりたいことは、 perl で書くと以下のようなことです。 わからないのは $array{$page[1]}++; のカウントと、%array のソート。あたり。 -------- #!/usr/bin/perl while (<>) { @line = split(/\"/); @page = split(" ", $line[1]); if (length($page[1]) != 1) { $page[1] = substr($page[1], 0, rindex($page[1], "/")); } # page count. $array{$page[1]}++; } # hit page report. $cnt = 0; print "\n\n\n"; print " hit : Directory\n"; print "-----------------------------------------\n"; foreach $name (sort { $array{$b} <=> $array{$a} } keys %array) { $cnt += 1; printf(" %5d : %8d : %s\n", $cnt, $array{$name} , $name); } -------- 処理対象のファイル。 -------- infoweb.or.jp - - [01/Oct/1998:00:04:33 +0900] "GET /manual/index.html HTTP/1.1" 200 249 infoweb.or.jp - - [01/Oct/1998:00:04:34 +0900] "GET /manual/Left2.html HTTP/1.1" 200 1146 infoweb.or.jp - - [01/Oct/1998:00:04:35 +0900] "GET /manual/Right2.html HTTP/1.1" 200 3760 infoweb.or.jp - - [01/Oct/1998:00:04:35 +0900] "GET /manual/image/SB-S.gif HTTP/1.1" 200 2518 -------- -------- Boarder. -> Katsuya Tanaka