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)