Главная страница


ru.perl

 
 - RU.PERL ----------------------------------------------------------------------
 From : vilfred                              2:5020/400     07 Nov 2001  19:04:01
 To : All
 Subject : эта прога объявляет хеш хешей массивов?
 -------------------------------------------------------------------------------- 
 
 Привет великомудрому аллу!!
 
 хотел написать прогу, которая умеет объявлять хешхешей массивов
 
 Задача, есть лог файл допустим, первая позиция айпишник вторая дата
 (данные разделены запятой, насамом деле не лог файл исходно, а прайс, 
 первое поле айди, фторое фирма и нужно получить доступ по айди и по 
 фирме к нужным данным). Hужно получить доступ одного юзера за все дни в 
 отсортированном виде к каждой html, т.е. нужно выдрать за месяц всех 
 юзеров и для каждого составить статистику посещений к каждой страничке
 
 т.е. нужно узнать, где был любой айпишник на серваке за месяц, причем 
 узнать сколько раз этот юзер за месяц побывал на одной и той-же 
 страничке. 
 
 т.е. хеш хешей массивов... где массивы это число запросов данного юзера 
 к данной страничке за месяц скажем. 
 
 #!/usr/bin/perl
 print "content-type: text/html\n\n";
 
 open F, "<email-example1" or die "can't open: $!\n"; @mass=<F>; close F;
 #открываем файл вида
 #a,b,123,123,345,qwe
 #a,b,123,123,345,we
 #a,b,123,123,345,tgfh
 #a,c,123,123,345,fgh
 #a,c,123,123,345,dgh
 #a,d,123,123,345,dfgh
 #a,d,123,123,345,erre
 #a,d,123,123,345,fghdhdf
 #b,c,123,123,345,
 #b,c,123,123,345,
 #b,d,123,123,345,dfgh
 #b,d,123,123,345,erre
 #b,d,123,123,345,fghdhdf
 
 @uniq=grep{!$_{$_}++}
 map{/^(.*?),/} @mass;
 
 #сортируем по первой позиции
 #т.е. выделяем уникальные буквы до
 #первой запятой, которые будут ключами
 #для хеша в виде уникальных хостов посетителей
 #далее имеем юзеров, для которых
 #надо записать все странички, т.е. число
 #просмотров каждым юзером каждой странички 
 #исходя из того, что логфайл велся скажем месяц
 
 for $gr1(@uniq){ my @h;
   foreach $line(@mass){
     push @{$hash{$gr1}{$1}}, $2 if $line=~m!^$gr1,(.*?),(.*)!
   }
 }
 
 for $a(sort keys %hash){
   print "$a: \n\t{";
   for $key(sort keys %{$hash{$a}}){
     print "'$key' => ";
     print "${$hash{$a}{$key}}[$#{$hash{$a}{$key}}],\n\t";
   }
   print "}\n";
 }
 
 обращение к элементам @{$hash{$a}{$key}}идет как к элементам массива, 
 по крайней мере исправно выводит первый или второй элемент массива без 
 проблем. Верно ли что как к элементам массива? Т.е. действительно ли на 
 выходе этой проги хеш-хешей массивов? Я просто никогда такого не делал, 
 может тут есть кто кто писал такие штуки. Короче, сабж это или нет?
 
 Спасибо!
 
 -- 
 TEAM [Маньяки]
 Отправлено через сервер Talk.Ru - http://www.talk.ru
 --- ifmail v.2.15dev5
  * Origin: Talk.ru (2:5020/400)
 
 

Вернуться к списку тем, сортированных по: возрастание даты  уменьшение даты  тема  автор 

 Тема:    Автор:    Дата:  
 эта прога объявляет хеш хешей массивов?   vilfred   07 Nov 2001 19:04:01 
 Re: эта прога объявляет хеш хешей массивов?   Alex Yemelyanov   08 Nov 2001 10:40:59 
Архивное /ru.perl/6488de1bb0e7.html, оценка 2 из 5, голосов 10
Яндекс.Метрика
Valid HTML 4.01 Transitional