use strict; use Carp; use Data::Dumper; my @keys = qw/size atime ctime/; my @vals = (101, 12, 13); my $hash_ref = hash_from_arrays( \@keys, \@vals ); print Dumper $hash_ref; sub hash_from_arrays { my ( $keys, $values ) = @_; croak "Mismatched number of keys and values" if @$keys != @$values; my %hash; @hash{ @$keys } = @$values; return \%hash; }