![]() |
|
Модераторы: korob2001, ginnie |
![]()
|
|
| AlexanderI |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 230 Регистрация: 9.7.2004 Репутация: 2 Всего: 3 |
Помогите создать условие.
У меня есть массив: @massiv = qw(4 10 16 20); Каким образом создать условие так, чтобы проверялось сразу принадлежность каждого значения массива ? т.е например:
Это сообщение отредактировал(а) AlexanderI - 20.7.2006, 10:35 --------------------
Магазин детских игрушек | Авто ВАЗ |
|||
|
||||
| Nab |
|
||||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 582 Регистрация: 25.3.2006 Где: Kiev Репутация: 26 Всего: 37 |
неее, пользуйся лучше хешем...
или вот так
Тут вкралась ошибочка, смотрите топик ниже Правильно вот так:
Хотя в данном конкретном случае это никак не влияет, мы проверяем существование ключа а не его истиннось, но ради принципа всеже этот вариант вернее... Это сообщение отредактировал(а) Nab - 17.8.2006, 12:56 -------------------- Чтобы правильно задать вопрос нужно знать больше половины ответа... Perl Community FREESCO in Ukraine |
||||
|
|||||
| Throne |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 147 Регистрация: 10.5.2006 Репутация: нет Всего: 2 |
В крайнем случае можно изобразить что-то типа
Это сообщение отредактировал(а) Throne - 20.7.2006, 15:45 --------------------
Компьютер — это наредкость тупая вещь, но считает с феноменальной скоростью. |
|||
|
||||
| DiverD |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 225 Регистрация: 14.9.2005 Где: Белорусь Репутация: 1 Всего: 2 |
еще как вариант с форейчем:
--------------------
[ FreeBSD & pERL p0WER eVERY dAY ] |
|||
|
||||
| Ramirez |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 305 Регистрация: 18.1.2005 Где: Moscow, ExUSSR Репутация: 4 Всего: 5 |
вот еще вариантец
Это сообщение отредактировал(а) Ramirez - 21.7.2006, 10:19 |
|||
|
||||
| lanD |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 13 Регистрация: 5.6.2006 Репутация: нет Всего: нет |
Почитай про логические операторы
|
|||
|
||||
| igorold |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 557 Регистрация: 22.12.2005 Где: Россия->Урал-& gt;Миасс Репутация: 3 Всего: 17 |
это из другой оперы - это ты проверяешь определен ли энный элемент массива, где эн=$cifra -------------------- ... у семи нянек 14 сисек ... Putin here, Putin there, Putin almost everywhere! |
|||
|
||||
| sharq |
|
|||
![]() Perl Liker ![]() ![]() Профиль Группа: Участник Сообщений: 841 Регистрация: 13.12.2004 Где: Ростов-на-Дону Репутация: 23 Всего: 28 |
AlexanderI,
-------------------- [color=gray]There's More Than One Way To Do It[/color] |
|||
|
||||
| Nab |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 582 Регистрация: 25.3.2006 Где: Kiev Репутация: 26 Всего: 37 |
;) -------------------- Чтобы правильно задать вопрос нужно знать больше половины ответа... Perl Community FREESCO in Ukraine |
|||
|
||||
| sharq |
|
|||
![]() Perl Liker ![]() ![]() Профиль Группа: Участник Сообщений: 841 Регистрация: 13.12.2004 Где: Ростов-на-Дону Репутация: 23 Всего: 28 |
Nab, т.е. в твоем варианте прокатит:
$cifra = 4, а какой-нить элемент массива @massiv 345 или 4me -------------------- [color=gray]There's More Than One Way To Do It[/color] |
|||
|
||||
| Nab |
|
||||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 582 Регистрация: 25.3.2006 Где: Kiev Репутация: 26 Всего: 37 |
Ну вот началось
я так и знал что начнеться блин и в праздник обижают все знают как помочь беде ну ладно, так и быть скажу
или
-------------------- Чтобы правильно задать вопрос нужно знать больше половины ответа... Perl Community FREESCO in Ukraine |
||||
|
|||||
| Danissimo |
|
||||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 150 Регистрация: 14.8.2006 Где: Санкт-Петербург Репутация: 1 Всего: 1 |
2 Nab: Переведи, плз, 2-ю строчку |
||||
|
|||||
| Nab |
|
||||||||||||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 582 Регистрация: 25.3.2006 Где: Kiev Репутация: 26 Всего: 37 |
Ууу, ее сложно в двух словах объяснить, но я попытаюсь В левой части выражения мы формируем срез хеша предсталенный в виде массива. И каждому элементу которого в правой части присваиваем 1. Срез хеша это приблизительно вот так:
Так как нас интересует присваивание то этот срез хеша попадает в левую часть. В правую попадает вот такое выражение:
оператор x - это повторитель, он повторяет элемент (число, строку) указанный как левый операнд... правый операнд определяет количество этих самых элементов. В нашем случае, это массив, который в скалярном контексте возвращает количество своих элементов. Вообще это один из самых простых способов заполнить хеш или массив повторяющимся или дефолтным значением. Я не скажу что это очень сложно, но осваивается с трудом Этот способ хорошо применим когда нужно перевернуть хеш, то есть поменять местами ключи и значения...
Конечно при одинаковых значениях элемент может потеряться, но какой именно, эт боюсь не скажу Ну вот вроде и все, надеюсь понятно объяснил Если что спрашивайте... Это сообщение отредактировал(а) Nab - 9.9.2006, 01:04 -------------------- Чтобы правильно задать вопрос нужно знать больше половины ответа... Perl Community FREESCO in Ukraine |
||||||||||||
|
|||||||||||||
| Danissimo |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 150 Регистрация: 14.8.2006 Где: Санкт-Петербург Репутация: 1 Всего: 1 |
Супер!!!
1. Правильно я понимаю, что
2. Про 1 x @mass я так и думал. Тока не понятно, зачем? Почему просто не сказать @{%hash}{@mass} = 1;? 3. Где написано, что в конструкции @{%hash}{@mass} сначала выполняется %hash{@mass}, а затем уже результат преобразовывается к массиву (или списку)? 4. Наскока я мог понять из прочтенного, список и массив -- разные вещи. (1, 2, 3) -- список, @x = (1, 2, 3) -- массив, в который скопированы элементы списка. Это верно? 5. Меня удручает, что не могу найти четких правил о семантике языка. Например, где однозначно говорится, в чем отличия в интерпретации @%hash{@mass} и @{%hash}{@mass}. Где? Если не сложно, конечно =) |
|||
|
||||
| Nab |
|
||||||||||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 582 Регистрация: 25.3.2006 Где: Kiev Репутация: 26 Всего: 37 |
Так, сразу приношу извинения кого ввел в заблуждение:
Конструкция '1 x 10' создаст строку из десяти единичек. В нашем же случае нужны отдельные элементы, посему их нужно екранировать... Вот верный код:
Нет не правильно, давай ты хотя бы сначала попробуешь запустить, то что пишеш а потом спрашивать про аналогичность....
Аналогично предыдущему... Сначала самому проверить, а потом писать. С учетом того что я тоже ошибся
С чего ты это взял? Эта конструкция вообще не верна. Нет Аналогично первому, сначала проверить на жизнеспособность а потом писать... Семантика перла многовариантна, это фича Купи LamaBook И очень рекомендую Perl CookBook... Как раз в ней это все есть.... -------------------- Чтобы правильно задать вопрос нужно знать больше половины ответа... Perl Community FREESCO in Ukraine |
||||||||||
|
|||||||||||
![]()
|
| Правила форума "Perl" | |
|
|
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, korob2001, sharq. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Perl: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |