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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> регулярные выражения в PERL 
:(
    Опции темы
scion
Дата 15.5.2009, 16:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Цитата(arto @ 15.5.2009,  15:53)
grep { !$_{$_}++ } split ",","a,b,s,b,a"

не понял. можно подробнее.
PM MAIL   Вверх
amg
Дата 15.5.2009, 16:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


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

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



Цитата(scion @  15.5.2009,  14:34 Найти цитируемый пост)
почему на работает поиск по массиву:
if (@m =~ /data/)
или в перле незя так искать в массиве?
Так нельзя, но можно так:
if (grep {/data/} @m)
if ("@m" =~ /data/)


Это сообщение отредактировал(а) amg - 15.5.2009, 16:24
PM MAIL   Вверх
DaemonSuw
Дата 15.5.2009, 16:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



@mas=%hash - снова массив
PM MAIL ICQ   Вверх
scion
Дата 15.5.2009, 16:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Цитата(amg @ 15.5.2009,  16:23)
Цитата(scion @  15.5.2009,  14:34 Найти цитируемый пост)
почему на работает поиск по массиву:
if (@m =~ /data/)
или в перле незя так искать в массиве?
Так нельзя, но можно так:
if (grep {/data/} @m)
if ("@m" =~ /data/)

спасибо! а я тут мучаюсь...

Добавлено через 1 минуту и 51 секунду
Цитата(DaemonSuw @ 15.5.2009,  16:25)
@mas=%hash - снова массив

почему тогда не получается:
@mas=%hash 

print @mas[3];

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


Бывалый
*


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

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



Немного неточно: мы хотим получить просто ключи из хеша, тогда лучше так: @mas = keys(%hash);

Почитайте про массивы, хеши и обращения к ним и все станет ясно: 

к элементу массива: $mas[1]
к массиву целиком: @mas 
к хешу: $hash{'2321312'}
к всему хешу целиком: %hash 

PM MAIL ICQ   Вверх
scion
Дата 15.5.2009, 21:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Цитата(DaemonSuw @ 15.5.2009,  17:11)
Немного неточно: мы хотим получить просто ключи из хеша, тогда лучше так: @mas = keys(%hash);

Почитайте про массивы, хеши и обращения к ним и все станет ясно: 

к элементу массива: $mas[1]
к массиву целиком: @mas 
к хешу: $hash{'2321312'}
к всему хешу целиком: %hash

нет, я всё правильно делал....
просто после:
@mas = keys(%hash);

все данные из hash попавают в $mas[0] =( А я думал, они попадут в $mas[0] .... [n]
( грубо говоря у меня получилось в $mas[0] - profile  thunderpass library.... )
и вопросик, а как мода их засунуть не в $mas[0], а в $mas[0] - frofile, в mas[1] - thunderpass  etc...

А если я из в hash разделю символом новой строки (\n) они бут как отдельные элементы? (не как строка?)
PM MAIL   Вверх
DaemonSuw
Дата 15.5.2009, 21:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



Еще раз рекомендую почитать про массивы, хеши и обращения к ним, существует очень много книг =)
Вы ошибаетесь!
Цитата

все данные из hash попавают в $mas[0] =( А я думал, они попадут в $mas[0] .... [n]
( грубо говоря у меня получилось в $mas[0] - profile  thunderpass library.... )
и вопросик, а как мода их засунуть не в $mas[0], а в $mas[0] - frofile, в mas[1] - thunderpass  etc...


Код

C:\Documents and Settings\Deamon>perl -e "%hash = qw/a 1 b 2 c 3 d 4/; print %hash; @a = keys(%hash); print ' => '.$a[0].$a[1].$a[2].$a[3]";


Цитата

А если я из в hash разделю символом новой строки (\n) они бут как отдельные элементы? (не как строка?) 

не корректный вопрос... я ничего не понял! 

PM MAIL ICQ   Вверх
amg
Дата 16.5.2009, 16:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


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

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



Прочитал наконец тему с самого начала. Сплошной сумбур!

DaemonSuw,  совет по поиску в массиве, приведенный мной, оказывается, уже был дан Вами. Прошу прощения за дубль и за невнимательность.
scion, сформулируйте какую-нибудь небольшую, но конкретную задачку, нужную Вам. В ответ наверняка кем-нибудь будет предложен код, решающий эту задачку. Тогда, четко зная проблему и имея перед глазами решение, Вам будет гораздо проще разобраться в особенностях конструкций Перла и задать информативные вопросы.
PM MAIL   Вверх
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Perl: Регулярные выражения | Следующая тема »


 




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


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

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