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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Помогите подправить скрипт. Perl выборка 
:(
    Опции темы
tedy1
Дата 5.12.2011, 05:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Цитата(arto @ 2.12.2011,  13:16)
\n\r?

Пробовал подставлять, все равно ни чего не выводит.
print &search($file, $date);
PM MAIL   Вверх
tedy1
Дата 5.12.2011, 13:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Содержимое файла /5/test:


Name=d1232
Name=s3452
Name=f3453
19.11.2011 Printer
19.11.2011 Scaner
Name=h7692
Name=g2355
19.11.2011 HDD
Name=a1356


Нужно получить (если после названия стоит дата):
Name=f3453
19.11.2011 Printer
19.11.2011 Scaner
Name=g2355
19.11.2011 HDD




Код

sub search() {
    ($file, $date) =@_;

    local $/ = \0;
    open f, $file_name or die "$!";
    $file = <f>;
    @arr;
    push @arr, $1 while($file=~/(name=\w\d{4}\n$date\s\w+)\n/ig);
    return @arr;
    }

 $file_name = "/5/test";
 $date = "19.11.2011";
&search($file_name, $date);


print &search($file, $date); # ни чего не выдаёт.




Подскажите пожалуйста где неправильно?
PM MAIL   Вверх
alezzz
Дата 5.12.2011, 14:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


сплю...
**


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

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



Код

use strict;

my $file = join '', <DATA>;
while ($file =~ /Name=.*\r?\n(?:(?:(?!Name).)+\r?\n)+/g){
    print $&;
}

__DATA__
Name=d1232
Name=s3452
Name=f3453
19.11.2011 Printer
19.11.2011 Scaner
Name=h7692
Name=g2355
19.11.2011 HDD
Name=a1356


переделайте под чтение из файла
PM MAIL   Вверх
tedy1
Дата 7.12.2011, 12:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Цитата(alezzz @ 5.12.2011,  14:26)
Код

use strict;

my $file = join '', <DATA>;
while ($file =~ /Name=.*\r?\n(?:(?:(?!Name).)+\r?\n)+/g){
    print $&;
}

__DATA__
Name=d1232
Name=s3452
Name=f3453
19.11.2011 Printer
19.11.2011 Scaner
Name=h7692
Name=g2355
19.11.2011 HDD
Name=a1356


переделайте под чтение из файла

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


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

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


 




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


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

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