Perl in_array

Программист на PHP спросил есть ли в Perl'e in_array (проверка на существование значения в массиве). Есть конечно! Только делается он так:

if (scalar grep {$_ eq $something} @something)
{

}

Причём, сравнивать можно не только по прямому условию, но и по регулярному выражению, например.

7 июля 2003 10:48

kukutz (инкогнито)
7 июля 2003, 14:42

Вот за это мы и не любим перл.

bolk (bolknote.ru)
7 июля 2003, 14:42, ответ предназначен kukutz

И то, за что любим его мы :)

Ray (инкогнито)
7 июля 2003, 16:12

в данном случае из-за не соответсвия, открывающих к закрывающим, скобок?

bolk (bolknote.ru)
7 июля 2003, 16:12, ответ предназначен Ray

Упс.. небрежно писал не заметил :)

kukutz (инкогнито)
7 июля 2003, 17:06

Я ненавижу за синтаксис.

А ты, поди, любишь за мощь?

bolk (bolknote.ru)
7 июля 2003, 17:06, ответ предназначен kukutz

За какую такую мощь? Я его за синтаксис люблю.

Baka (инкогнито)
8 июля 2003, 09:46

Если нужно (часто) проверять наличие элемента в массиве, надо пользоваться хэшем,
а не массивом. :-)

use strict;
my @something = qw(1 2 3);
my $something = 2;

{ # Вот так
my %hash; @hash{@something} = ();
if (exists $hash{$something}) {
    print «$something found\n»;
}
}

{ # Или так
my %hash; @hash{@something} = (1) x scalar @something;
if ($hash{$something}) {
    print «$something found\n»;
}
}

{ # Или так
my %hash = map {($_ => 1)} @something;
if ($hash{$something}) {
    print «$something found\n»;
}
}

Или с самого начала использовать хэш.

bolk (bolknote.ru)
8 июля 2003, 09:46, ответ предназначен Baka

Кто говорил «часто»? Я говорил о реализации ф-и in_array. А Перл я тоже знаю.

Ray (инкогнито)
8 июля 2003, 12:02

раз уж всё в курсе что такое in_array()
позволю себе наглость задать вопрос:

bolk (bolknote.ru)
8 июля 2003, 12:02, ответ предназначен Ray

ага? какой?

Ray (инкогнито)
8 июля 2003, 16:41

парсер весь код сожрал даже буковки не оставил, попробую ещё раз.

<code>

</code>

Ray (инкогнито)
8 июля 2003, 16:42

ещё попыточка ;)
парсер весь код сожрал даже буковки не оставил, попробую ещё раз.

<code>

</code>

Ray (инкогнито)
8 июля 2003, 16:45

ну вобщем так.. ;)
сакральное знание — как в комменты не регистрах постить код, мне не открылось.
На попытку удалить «накасяченную» мессагу получаю «u have no rights».
так что пока кроме мусора ничего запостить не смог.
Отошлю тебе по почте, не сочти за наглость. ;)

bolk (bolknote.ru)
8 июля 2003, 16:45, ответ предназначен Ray

угу, но сегодня смотреть уже ничего не буду — завтра рано уезжать. А код постить просто — надо использовать &lt; &gt;

Юрий (инкогнито)
9 мая 2017, 19:08

Прелесть какая: прошло 14 лет, интересно - написал ли Ray свой сакральный вопрос, ответил ли ему bolk ?

bolknote.ru (bolknote.ru)
11 мая 2017, 21:45, ответ предназначен Юрий

:)) Уже и движок «Регистра», про который вопрос, давно помер и используется, на одном-единственном сайте: http://kvnru.ru

Ваше имя или адрес блога (можно OpenID):

Текст вашего комментария, не HTML:

Кому бы вы хотели ответить (или кликните на его аватару)