my $pvalue = -1; foreach (@{$Statistics::ChiSquare::chitable[$degrees_of_freedom]}) { if ($chisquare < $_) { $pvalue = $Statistics::ChiSquare::chilevels[$degrees_of_freedom]->[$i+1]; last } $i++; } $pvalue = (@{$Statistics::ChiSquare::chilevels[$degrees_of_freedom]})[-1] unless $pvalue > -1; $pvalue /= 100; # 0-1 e.g. 5% -> 0.05