Perl in_array

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

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

}

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

Поделиться
Отправить
2003  
16 комментариев
kukutz

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

Евгений Степанищев (bolknote.ru)

Комментарий для kukutz:

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

Ray

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

Евгений Степанищев (bolknote.ru)

Комментарий для Ray:

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

kukutz

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

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

Евгений Степанищев (bolknote.ru)

Комментарий для kukutz:

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

Baka

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

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»;
}
}

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

Евгений Степанищев (bolknote.ru)

Комментарий для Baka:

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

Ray

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

Евгений Степанищев (bolknote.ru)

Комментарий для Ray:

ага? какой?

Ray

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

<code>

</code>

Ray

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

<code>

</code>

Ray

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

Евгений Степанищев (bolknote.ru)

Комментарий для Ray:

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

Юрий

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

Евгений Степанищев (bolknote.ru)

Комментарий для Юрий:

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

Популярное