use strict; use warnings; use Data::Dumper; my %hash = (0 => foo(0), 3 => foo(3), 7 => foo(7)); print Dumper(\%hash); sub foo { return unless $_[0]; return $_[0] * 2; };