use Math::BigFloat; sub SqrRoot { my $num = Math::BigFloat->new( shift ); my $iterations = shift || 50; my $guess = Math::BigFloat->new( $num / 2 ); for ( 1..$iterations ) { $guess = (( $num / $guess ) + $guess ) / 2; } return $guess; }