my @envars; push @envars,{ value => 23, description => 'temperature in Celsius' }, { value => 56, description => 'relative humidity in %' }, { value => 1008.1, description => 'pressure in millibars' }, { value => 4, description => 'dewpoint in degrees Celsius' }, { value => 344, description => 'total column ozone in Dobson Units' }; #### # say you've got 2 parallel arrays @values and @descriptions my @envars = map({ value => $values[$_], description => $descriptions[$_] }, 0..$#values); #### # Same assumption as before ... for my $i (0..$#values) { push @envars, { value => $values[$i], description => $descriptions[$i] }; }