my @keys = keys %{$database[0]}; #optionally use sort keys my $pdl1 = pdl (@{$database[0]}{@keys}); my $n1 = norm $pdl1; my ($pdl2, $n2, $dotproduct, $d, @angles); for (0..$3database) { $pdl2 = pdl ((@{$database[$_]}{@keys}); $n2 = norm $pdl2; $dotproduct = inner ($n1, $n2); $d = dotproduct->sclr(); $angles[$_] = (180/3.1415926)*acos($d); }