------------------------------------------
How do I convert a string to a number?
Use this atoi function:
------------------------------------------sub atoi { my $t; foreach my $d (split(//, shift())) { $t = $t * 10 + $d; } } $number = atoi("123");
Use sprintf:
$string = sprintf("%f", 123.45);
------------------------------------------
How can I tell if a string is a number?
The simplest method is:
Note the use of the == operator to compare the string to its numeric value. However, this approach is dangerous because the $string might contain arbitrary code such as @{[system "rm -rf /"]} which would be executed as a result of the interpolation process. For safety, use this regular expression:if ($string == "$string") { # It is a number }
if ($var =~ /(?=.)M{0,3}(C[MD]|D?C{0,3})(X[CL]|L?X{0,3})(I[XV]|V?I{0 +,3})/) { print "$var contains a number.\b"; }
Edit kudra, 2002-09-21 Fixed literal brackets
In reply to Re: Perl Humor
by gmpassos
in thread Perl Humor
by AcidHawk
For: | Use: | ||
& | & | ||
< | < | ||
> | > | ||
[ | [ | ||
] | ] |