Perl/idiomy

Z Wikiverzity

Perl/idiomy jsou ustálené vazby, kterými se řeší nějaké úkoly.

is_in_array[editovat]

PHP má takovou funkci, která zjistí, jestli je daná položka v seznamu (tj. v poli, array). Jak zkonstruovat takovou podmínku udělat v Perlu? Lze to udělat různě, pozor, každá možnost dělá něco trochu jiného:

if(grep /$polozka/, @pole)                # hledání dle vzoru

if(grep { $polozka eq $_ } @pole)         # porovnávání stringů:
 
if(grep { $polozka == $_ } @pole)         # porovanávání číselných hodnot:

Pokud by se to někomu nelíbilo a chtěl si udělat takovou funkci, jako je v PHP, pak může:

sub is_in_array {
    my $str = shift;
    my $array_ref = shift;

    if (grep { $str eq $_ } @{$array_ref}) {
        return 1;
    }
    return 0;
}