my %hash; # Note: you cannot use 'my' on a slice @hash{@a} = (0) x @a; # Initialise values to zero @hash{@a} = undef; # No values @hash{@a} = @b; # Take values from @b