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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> поиск 
:(
    Опции темы
Mlix
Дата 11.4.2007, 23:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



здравствуйте, помогите пожалуйста решить проблему

Код

#!usr/bin/perl -w
$text = "text.txt";

 open(TEXT,"$text");

 @text = <TEXT>; 

if ($msg =~ /^:(\S+)!(\S+)\@(\S+)\sNOTHING\s(\S+)\s:(\S.*)/ ) {

$end=grep /^$5$/, @text;
 
 if ($end==1) {
print "ok";


}
 }


почему-то, не ищется через grep...в чем может быть проблема?

PM MAIL   Вверх
korob2001
Дата 11.4.2007, 23:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 2871
Регистрация: 29.12.2002

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



Приведи несколко строк из файла и что пытаешься найти.

Это сообщение отредактировал(а) korob2001 - 12.4.2007, 00:00


--------------------
"Время проходит", - привыкли говорить вы по неверному пониманию. 
"Время стоит - проходите вы".
PM MAIL WWW ICQ MSN   Вверх
nitr
Дата 11.4.2007, 23:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 2543
Регистрация: 10.2.2006
Где: Россия :)

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



контекст понятен...
Код

my @text = qw(hello vasya vasyap pupkin);
my $end = grep /^vasya$/, @text;
 
if ($end == 1) {
  print "ok";
}

так что думаю надо ответить на вопрос многоуважаемого korob2001 smile 

Это сообщение отредактировал(а) nitr - 11.4.2007, 23:50


--------------------
PM   Вверх
Mlix
Дата 12.4.2007, 10:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



вообщем, я пишу ирк-бота, когда поступает мессага, которая тут имеет значение $5, бот должен прочитать мессагу и найти ее в массиве.

2korob2001
ну например:
hello
re

2nitr
мессаги разные
поэтому надо замутить именно с $5

извиняюсь, что сразу не описал полностью проблему

Это сообщение отредактировал(а) Mlix - 12.4.2007, 10:50
PM MAIL   Вверх
nitr
Дата 12.4.2007, 11:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 2543
Регистрация: 10.2.2006
Где: Россия :)

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



Mlix, думаю у тебя просто $5 "пустое", я показал код, что должно работать, если $5 реально != ''
А ещё совет использовать модули, они полностью описывают и работают с протоколом IRC - смотрите
тут
там и боты уже готовые есть, достаточно настроить и "сказать что ему делать" ;)



--------------------
PM   Вверх
Mlix
Дата 12.4.2007, 11:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



да не, в этом то и хрень, $5 полное, когда пишу print "$5" или $irc->send("PRIVMSG $chan :$5\r\n"), мне возвращается моя мессага...
спасибо, я знаю, просто хочется самому реализовать smile
PM MAIL   Вверх
nitr
Дата 12.4.2007, 11:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 2543
Регистрация: 10.2.2006
Где: Россия :)

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



test.pl
Код
#!/usr/bin/perl
use strict;
use warnings;

my $textfile = 'text.txt';
my @text;

open my $flh, "< $textfile";
@text = <$flh>;
close $flh;

my $msg = ':user!user@user NOTHING chan :hello'; #приведи точное значение :)

if ( $msg =~ /^:(\S+)!(\S+)\@(\S+)\sNOTHING\s(\S+)\s:(\S.*)/ ) {
    my $end = grep /^$5$/, @text;

    if ($end == 1) {
        print "ok";
    }
}

text.txt
Цитата
hello vasya
re
hello
world

Результат smile
Цитата
D:\>test.pl
ok
D:\>



--------------------
PM   Вверх
tishaishii
Дата 12.4.2007, 11:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Создатель
***


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

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



v1.1:
Код
my$v5=$5;

v1.2:
Код
$str=~m{\Q$v5\E}

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


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

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


 




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


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

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