fixxxer fixxxer - 3 months ago 8
Perl Question

How can I convert a string to a float with Perl?

Is there any function like

int()
which can convert a string to float value?
I'm currently using the following code:

$input=int(substr($line,1,index($line,",")-1));


I need to convert the string returned by
substr
to float.

Answer

Just use it. In Perl, a string that looks like a number IS a number.

Now, if you want to be sure that the thing is a number before using it then there's a utility method in Scalar::Util that does it:

use Scalar::Util qw/looks_like_number/;

$input=substr($line,1,index($line,",")-1);

if (looks_like_number($input)) {
    $input += 1; # use it as a number!
}

Based on the sample input you left in the comments, a more robust method of extracting the number is:

$line =~ /([^\[\],]+)/; # <-- match anything not square brackets or commas
$input = $1;            # <-- extract match
Comments