use Math::Complex; use CGI qw(param); for my $i (1..$varno) { for my $j (1..$varno) { next unless my $val = param("val-$i-$j"); if (my($re, $im) = $val =~ /(.*)([-+].*)[ij]/) { $matrix[$i][$j] = cplx($re, $im); } else { $matrix[$i][$j] = cplx($val, 0); } } }