- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
use strict;
use warnings;
my ($i, $j) = (42, 13);
my $max = [ $i => $j ]->[ $i <= $j ];
print "max: $max\n";
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
−119
use strict;
use warnings;
my ($i, $j) = (42, 13);
my $max = [ $i => $j ]->[ $i <= $j ];
print "max: $max\n";
Вот-так вот: http://ideone.com/2Rd3Mr
// Вроди где-то в PBP этот пример даже есть
ЗЫ для непосвященных, в строке №6, создается ссылка на массив из двух элементов (`[$i=>$j]`, аналогично `[$i,$j]`), ссылка разыменовывается (`->`), и из массива берется элемент с индексом `$i <= $j` (булево выражение как индекс).
>разыменовывается
>язык со сборкой мусора без указателей
Но зачем?
Попробую ответить на этот реторический вопрос: Чтоб жизнь малиной не казалась!
но это просто кто-то состебался. в перле, в List::Utils, уже есть min/max.
нужно что-то типа:
или через временный массив.
что все равно гк по сравнению с `max($i,$j)`.
А что, на этом вашем Perl даже helloworld нельзя написать без use strict; use warnings; ?
А потому, что хеш-массивы в перле через {}
> а не ассоциативный массив из одной пары (i,j)?
наверное потому что практической пользы мало.
практический пример непрактичности: С++ный std::map и его любовь к std::pair.
я теперь перлоёб