Модераторы: korob2001, ginnie
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Вывести пользователей и кол-во посещенных страниц 
:(
    Опции темы
EctelL
Дата 2.7.2011, 16:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 4
Регистрация: 2.7.2011

Репутация: нет
Всего: нет



Здравствуйте!

Необходимо создать файл, в котором по каждому пользователю (файл Proxy.log)
отражается количество посещенных им страниц.

Вот, что сам написал, но выводит все ключи и значения равные 1.

Код

#!/usr/bin/perl
open(f1,"Proxy.log");
open(f2,"> Vivod.txt");
@input=readline(f1);
$col=$#input;
for ($i=0; $i<=$col; $i++){
    @array=split(' ',$input[$i]);
        %user=(@array[2]);
        if (exists $user{@array[2]}){
            $user{@array[2]}++        
            }
        else{
            $user{@array[2]}=1;
                        }
    foreach $key(sort{$user{$a} cmp $user{$b}} keys %user){            
    print(f2 "Пользователь:$key посетил $user{$key} страниц\n");}    
    }
close(f1);
close(f2);


PM MAIL   Вверх
SkoobyDoo
Дата 2.7.2011, 17:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 73
Регистрация: 4.10.2007

Репутация: нет
Всего: нет



В каком формате файл Proxy.log?
PM MAIL   Вверх
EctelL
Дата 2.7.2011, 17:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 4
Регистрация: 2.7.2011

Репутация: нет
Всего: нет



Первые 2 строки:

192.168.0.42 - sbo [22/Sep/2003:08:00:46 +0300] "CONNECT login.icq.com:443 HTTP/1.0" 200 379 New
192.168.0.40 - pro_fin [22/Sep/2003:08:00:55 +0300] "GET http://www.finam.ru/nmain.css HTTP/1.0" 304 0 Cache
PM MAIL   Вверх
alezzz
Дата 2.7.2011, 18:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


сплю...
**


Профиль
Группа: Участник
Сообщений: 499
Регистрация: 17.8.2009

Репутация: 1
Всего: 14



Обращение к элементу массива: $array[i].

%user=(@array[2]); -- в цикле, получается к %user не добавляется новый ключ, и как это вообще работает что-то не соображу.

начните с perlintro.

а по теме, я бы так сделал:
Код

while (<f1>){
    $user = (split ' ')[2];
    $users{$user}++;
}

foreach $user (keys %users){
    print f2 "$user: $users{$user}\n";
}

PM MAIL   Вверх
EctelL
Дата 2.7.2011, 19:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 4
Регистрация: 2.7.2011

Репутация: нет
Всего: нет



Я только знакомлюсь с perl'ом. Разбираюсь по немногу.

За код спасибоsmile

PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Perl"
korob2001
sharq
  • В этом разделе обсуждаются общие вопросы по языку Perl
  • Если ваш вопрос относится к системному программированию, задавайте его здесь
  • Если ваш вопрос относится к CGI программированию, задавайте его здесь
  • Интерпретатор Perl можно скачать здесь ActiveState, O'REILLY, The source for Perl
  • Справочное руководство "Установка perl-модулей", можно скачать здесь


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, korob2001, sharq.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Perl: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0925 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.