- 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 этот пример даже есть
Dummy00001 31.07.2013 22:49 # +4
ЗЫ для непосвященных, в строке №6, создается ссылка на массив из двух элементов (`[$i=>$j]`, аналогично `[$i,$j]`), ссылка разыменовывается (`->`), и из массива берется элемент с индексом `$i <= $j` (булево выражение как индекс).
anonimb84a2f6fd141 31.07.2013 22:51 # 0
>разыменовывается
>язык со сборкой мусора без указателей
Но зачем?
Dummy00001 31.07.2013 22:54 # +1
Попробую ответить на этот реторический вопрос: Чтоб жизнь малиной не казалась!
inkanus-gray 31.07.2013 22:55 # +1
Dummy00001 31.07.2013 22:57 # 0
но это просто кто-то состебался. в перле, в List::Utils, уже есть min/max.
Elvenfighter 01.08.2013 00:08 # 0
Dummy00001 01.08.2013 00:13 # 0
нужно что-то типа:
или через временный массив.
что все равно гк по сравнению с `max($i,$j)`.
Elvenfighter 01.08.2013 19:39 # +1
Dummy00001 01.08.2013 19:52 # 0
Elvenfighter 03.08.2013 19:44 # +6
А что, на этом вашем Perl даже helloworld нельзя написать без use strict; use warnings; ?
TarasB 03.08.2013 19:53 # 0
anonimb84a2f6fd141 03.08.2013 20:08 # 0
А потому, что хеш-массивы в перле через {}
Dummy00001 03.08.2013 20:12 # +2
> а не ассоциативный массив из одной пары (i,j)?
наверное потому что практической пользы мало.
практический пример непрактичности: С++ный std::map и его любовь к std::pair.
MAKAKA 30.10.2019 23:28 # 0
я теперь перлоёб
guest8 31.10.2019 00:02 # −999
j123123 31.10.2019 00:05 # 0
guest8 31.10.2019 00:26 # −999
max_wp 25.08.2021 06:26 # 0