# first variant, dont do this. foreach (@input){ push @name_nums, (exists $list{$_}) ? $list{ $_ } : $_; } # second variant, do this @name_nums=map{(exists $list{$_}) ? $list{ $_ } : $_}@input;