wenn man nur auf ziffern prüft und nicht auf komma und punkt(e), dann könnte man auch int($var) mit $var vergleichen, wenn die eq sind, sind's nur zahlen.
aber der regexp ist offensichtlich schneller...
C:\Dokumente und Einstellungen\jan>perl
use Benchmark qw/:all/;
timethese(10000000, {
'regexp' => sub { my $var = '1555000000'; my $onlydigits = 1 if($var =~ m/^\d$/);},
'inttest' => sub { my $var = '1555000000'; my $onlydigits = 1 if(int($var) eq $var);},
});
^Z
Benchmark: timing 10000000 iterations of inttest, regexp...
inttest: 19 wallclock secs (17.57 usr + 0.01 sys = 17.58 CPU) @ 568957.67/s (n=10000000)
regexp: 8 wallclock secs ( 6.84 usr + 0.03 sys = 6.87 CPU) @ 1455604.08/s (n=10000000)