Как найти индекс элемента в массиве?
Например, учитывая
my @weekdays = ['Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday', 'Sunday'];
Как мне найти индекс для 'Thursday'?
'Thursday'
Вы можете использовать first (или grep, если хотите знать обо всех совпадениях, а не только о первом) с :k, чтобы вернуть ключ (который для списка всегда целочисленный индекс) вместо значения:
first
grep
:k
say @weekdays.first('Tuesday', :k); # 1
Мое первоначальное решение:
@weekdays.kv.reverse.hash.{'Thursday'} # 3
Затем JFerrero опубликовал свое решение по улучшению, используя antipairs :
@weekdays.antipairs.hash.{'Thursday'} # 3
И ультимато отправил наречие решение:
@weekdays.first('Thursday', :k) # 3