В мире многих
@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;