use strict; use warnings; my $data = <; close $inFile; for my $values (@temp) { my $quadratic = quadratic (@$values); if (! defined $quadratic) { printf "a = %f, b = %f, c = %f: No solution\n", @$values; next; } printf "a = %f, b = %f, c = %f: %f\n", @$values, $quadratic; } sub quadratic { my ($a, $b, $c) = @_; my $root = $b*$b - 4*$a * $c; return if ! $a; return if $root < 0; return -($b + (0 < $b ? 1 : -1) * sqrt($root)) / 2*$a; } #### a = 4.000000, b = 8.000000, c = 3.000000: -24.000000 a = 2.000000, b = 2.000000, c = 3.000000: No solution a = -1.000000, b = 2.000000, c = 8.000000: 4.000000