Доброго время суток. Хочу попросить помощи. Пишу скрипт на Perl для обработки лог файла Squid, надо что бы считал трафик по пользователям иотрубал их при привышениии лимита, пишу впервые на этом языке, вот что получилось:
#!/usr/bin/perl
open( f_squid,»
%ipbyte=();%iplog=();
$sum=0;
while( $str=readline(f_squid) )
{
( $time,$name,$byte,$ip, $url)=split (' '), ;
$sum+=$byte; #общий http траффик
$ipbyte{$ip}+=$byte; #траффик по айпишникам
$url=~/[^\/]*\/\/[^\/]*/;
$url=$&;
$iplog{$ip}{$url}+=$byte; #эта строчка нужна если хотите еще разделять урлы по айпишникам
print «trafik: $ipbyte{$ip}\n», «summa: $sum\n», «Time: $time\n», «$str\n» ;
}
почемуто все переменные кроме $srt, пустые, как сделать что бы работало?
Последние комментарии
- OlegL, 17 декабря 2023 года в 15:00 → Перекличка 21
- REDkiy, 8 июня 2023 года в 9:09 → Как «замокать» файл для юниттеста в Python? 2
- fhunter, 29 ноября 2022 года в 2:09 → Проблема с NO_PUBKEY: как получить GPG-ключ и добавить его в базу apt? 6
- Иванн, 9 апреля 2022 года в 8:31 → Ассоциация РАСПО провела первое учредительное собрание 1
- Kiri11.ADV1, 7 марта 2021 года в 12:01 → Логи catalina.out в TomCat 9 в формате JSON 1
Прочти внимательно perldoc -f split.
Хинт. Если хочешь, чтобы перл сам догадывался о том, что ты хочешь сплитануть — помести это в $_. Иначе указывай явно.
Спасибо указал явно, а как примерно с $_ ?