Perl/idiomy
< Perl
Perl/idiomy jsou ustálené vazby, kterými se řeší nějaké úkoly.
is_in_array
editovatPHP 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;
}