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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Не могу правильно стоставить рег выражение, Строгое совпадение 
V
    Опции темы
OutlawZ
Дата 6.5.2010, 20:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Awaiting Authorisation
Сообщений: 269
Регистрация: 19.10.2007

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



Привет народ, помогите кто чем может, уже не знаю что делать. В общем есть поток данных IRC сервера, но это не главное, главное то что бот принимает команды от юзеров, все бы хорошо но не устраивает результат:

Код


if( $data_string =~ /^!test/ ){
 $s->send("PRIVMSG $chanel : Тестовая команда работает");
}


Когда пользователь набирает команду !test бот реагирует , но вот проблем если юзер введет скажем !testlalala то бот тоже реагирует как будто это !test, я это понимаю но нечего сделать не могу, пробовал уже использовать оператор eq но он не помогает в том смысле что бот просто не видет команды. 

Пробовал даже так /^!test$/ один фиг , помогите составить рег.выражение что бы бот реагировал строго на !test а не на !testlalal и т.д

Ну чайник я в рег выражении не как въехать не могу.  smile 

Хотя проводил тест, сохранил лог с пару командами с IRC потока, имитировал поток IRC, т.е открывал файл и искал команду вот тут то eq работал как надо без проблем т.е даже не применял рег.выражение.

Код

#!perl

open(FILE,"log.txt") or die "$!";
 
 while ($data = <FILE>) {
  
  @part = split(/:/,$data);
  @tmp = split(/!/,@part[1]);
   print $user = @tmp[0];
  @tmp = split(/ /,@tmp[1]);
   print $id = @tmp[0];
  @tmp = split(/ /,@part[1]);
   print $cmd = @tmp[1];
  @tmp = split(/ :/,$data);
   print $bot = @tmp[1];  
   
   chomp($bot);
   
   if($bot eq "!help"){
    print "Hello\n";
   }
}


Тут работает все как надо, а вот с потоком irc нет, у меня даже мысли были не разбивать входящий поток на массивы а тупо просто парсить полученную строку на найденный текст, но меня пока данный код устраивает.

Это сообщение отредактировал(а) OutlawZ - 6.5.2010, 20:51


--------------------
user posted image
user posted image
PM MAIL   Вверх
arto
Дата 6.5.2010, 20:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1495
Регистрация: 31.10.2004

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



perldoc -f chomp, ну и perldoc perlvar на предмет $/
PM MAIL ICQ   Вверх
maxgray
Дата 6.5.2010, 20:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Попробуй
Код

if( $data_string =~ /^(!test)$/)

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


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

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


 




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


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

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