my %name_of_id; for my $id ( @all_ids ) { if ( ! exists $name_of_id{$id} ) { my $name = get_name_of_id($id); # whatever $name_of_id{$id} = $name; } } #### $name_of_id{$_} ||= get_name_of_id($_) for @all_ids;