![]() |
|
Модераторы: ginnie |
![]()
|
|
| scion |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 52 Регистрация: 13.5.2009 Репутация: нет Всего: нет |
вопрос, есть текстовый файлик вида:
a:2:{s:5:"login";s:5:"admin";s:3:"pwd";s:6:"tester";} ..... ... как мине в переменную из этой строчки вытащить login и pwd. (в данном примере admin и tester ) спасибо за помощь.. |
|||
|
||||
| sir_nuf_nuf |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 920 Регистрация: 6.1.2008 Репутация: 1 Всего: 31 |
|
|||
|
||||
| arto |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1495 Регистрация: 31.10.2004 Репутация: нет Всего: 40 |
# perl -le 'print join "\n",(split "\"",$ARGV[0])[3,7]' 'a:2:{s:5:"login";s:5:"admin";s:3:"pwd";s:6:"tester";}'
admin tester # |
|||
|
||||
| scion |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 52 Регистрация: 13.5.2009 Репутация: нет Всего: нет |
спасибо мужики!
то что надо! |
|||
|
||||
| scion |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 52 Регистрация: 13.5.2009 Репутация: нет Всего: нет |
можно ещё вопрос, как из массива имён вытащить только по одному имени, даже если он повторяется
пример @str= 'dima vase igor dima lese vase'; результат должен быть: 'dima vase igor' |
|||
|
||||
| arto |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1495 Регистрация: 31.10.2004 Репутация: нет Всего: 40 |
hash?
|
|||
|
||||
| scion |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 52 Регистрация: 13.5.2009 Репутация: нет Всего: нет |
нет. просто есть строка вытащенная и файла. в которой повторяются слова. надо что бы все слова были уникальны.
|
|||
|
||||
| DaemonSuw |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 155 Регистрация: 11.3.2008 Репутация: нет Всего: 3 |
массив в хешь = уникальность элементов массива
|
|||
|
||||
| scion |
|
||||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 52 Регистрация: 13.5.2009 Репутация: нет Всего: нет |
запустил не работает. =(( 1, 2, 3, 1, 2, 3, 1, 2, 3 1, 3, 2 Добавлено через 2 минуты и 10 секунд упс... у меня что-то с мозгами.... спасибо всё работает.... =)) |
||||
|
|||||
| scion |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 52 Регистрация: 13.5.2009 Репутация: нет Всего: нет |
почему на работает поиск по массиву:
if (@m =~ /data/) или в перле незя так искать в массиве? |
|||
|
||||
| DaemonSuw |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 155 Регистрация: 11.3.2008 Репутация: нет Всего: 3 |
Так нельзя или через цикл или коротко
|
|||
|
||||
| arto |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1495 Регистрация: 31.10.2004 Репутация: нет Всего: 40 |
# perl -le '@ary = qw(a b c d); print "a: ",@ary ~~ m#a#?"yes":"no"; print "e: ",@ary ~~ m#e# ? "yes" : "no"; print "Perl: ",$^V'
a: yes e: no Perl: v5.10.0 # |
|||
|
||||
| DaemonSuw |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 155 Регистрация: 11.3.2008 Репутация: нет Всего: 3 |
arto, "~~" - новые вкусности)...
забыл совсем( |
|||
|
||||
| scion |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 52 Регистрация: 13.5.2009 Репутация: нет Всего: нет |
This is perl, v5.8.9 built for i386-freebsd-64int =((
в портах 10 нету =( ладно а если циклами... @a = (1,2,3,1,2,3,1,2,3); print join(', ',@a)."\n"; my %hash; foreach my $element (@a) {$hash{$element}++;} print join(', ',keys %hash) если я сделаю так: @mas=join(', ',keys %hash); то как мине обратится к элементам массива по индексам? $mas[3] - не работает.... ='( |
|||
|
||||
| arto |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1495 Регистрация: 31.10.2004 Репутация: нет Всего: 40 |
grep { !$_{$_}++ } split ",","a,b,s,b,a"
|
|||
|
||||
| scion |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 52 Регистрация: 13.5.2009 Репутация: нет Всего: нет |
не понял. можно подробнее. |
|||
|
||||
| amg |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1145 Регистрация: 3.8.2006 Где: Новосибирск Репутация: нет Всего: 50 |
||||
|
||||
| DaemonSuw |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 155 Регистрация: 11.3.2008 Репутация: нет Всего: 3 |
@mas=%hash - снова массив
|
|||
|
||||
| scion |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 52 Регистрация: 13.5.2009 Репутация: нет Всего: нет |
спасибо! а я тут мучаюсь... Добавлено через 1 минуту и 51 секунду
почему тогда не получается: @mas=%hash print @mas[3]; как обратится к элементу массива? |
|||
|
||||
| DaemonSuw |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 155 Регистрация: 11.3.2008 Репутация: нет Всего: 3 |
Немного неточно: мы хотим получить просто ключи из хеша, тогда лучше так: @mas = keys(%hash);
Почитайте про массивы, хеши и обращения к ним и все станет ясно: к элементу массива: $mas[1] к массиву целиком: @mas к хешу: $hash{'2321312'} к всему хешу целиком: %hash |
|||
|
||||
| scion |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 52 Регистрация: 13.5.2009 Репутация: нет Всего: нет |
нет, я всё правильно делал.... просто после: @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) они бут как отдельные элементы? (не как строка?) |
|||
|
||||
| DaemonSuw |
|
||||||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 155 Регистрация: 11.3.2008 Репутация: нет Всего: 3 |
Еще раз рекомендую почитать про массивы, хеши и обращения к ним, существует очень много книг =)
Вы ошибаетесь!
не корректный вопрос... я ничего не понял! |
||||||
|
|||||||
| amg |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1145 Регистрация: 3.8.2006 Где: Новосибирск Репутация: нет Всего: 50 |
Прочитал наконец тему с самого начала. Сплошной сумбур!
DaemonSuw, совет по поиску в массиве, приведенный мной, оказывается, уже был дан Вами. Прошу прощения за дубль и за невнимательность. scion, сформулируйте какую-нибудь небольшую, но конкретную задачку, нужную Вам. В ответ наверняка кем-нибудь будет предложен код, решающий эту задачку. Тогда, четко зная проблему и имея перед глазами решение, Вам будет гораздо проще разобраться в особенностях конструкций Перла и задать информативные вопросы. |
|||
|
||||
![]()
|
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Perl: Регулярные выражения | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |