В python я могу сделать следующее, чтобы получить все объекты в списке со специфическим свойством. В этом примере я хватаю список id
полей каждого obj
в списке objs
где obj.id
больше 100:Perl-эквивалент понимания списков Python со встроенным if-выражением?
ids = [ obj.id for obj in objs if obj.id > 100]
Как бы я сделать то же самое в Perl? Я думаю, что хочу использовать map
, но я не знаю, как условно сопоставлять элементы из источника, установленного в целевой набор.
'map + ($ _-> id) x ($ _-> id> 100), @ objs' – ysth
@ysth: Yikes. Думаю, я бы сохранил этот код для гольфа. Тернарный оператор намного безопаснее, так как вам не нужно, чтобы ваше условие возвращало только 0 или 1. – cjm
, если у вас есть сомнения, используйте оператор '() x !!' – ysth