В мире многих
@choices
С помощью$limit
, что можно сделать,
Жизнь предлагает много@options
Но время от времени один или два.
Чтобы минимизировать линейный шум
Что может Тим Тоуди сделать?
Вот несколько способов, о которых я думал, но они кажутся такими неуклюжими. Конечно, там есть более элегантный способ DWIM:
-
Подробный однострочный
my @choices = @options <= $limit ? @options : @options[0..$limit-1]; # Blech
-
Управление срезами
my @choices = @options[0..(@options <= $limit ? $#options : $limit - 1)]; # Even worse
-
Сырный ломтик внутри среза
my @choices = @options[0..($#options, $limit-1 )[@options > $limit]]; # Crazy eyes
-
Более четкое намерение, но более двух строк
my @choices = @options; @choices = @options[0..$limit-1] if $limit < @options;