在 perl 脚本中确定一个值是否为数字

Determine if a value is numeric in perl script

我的 perl 脚本采用第一个命令行参数并将“$numlines”设置为它。然后我有一个 if 语句应该确定 numlines 是否是数字(如果它是数字我想稍后使用这个值)但是即使我输入一个数值作为我的第一个命令行参数,我的脚本总是跳过 if 语句无论如何。

我的代码:

my $line;
my $counter = 0;
my @list;
my $numlines = shift @ARGV;
if ( $numlines !~ (/^-?\d+$/) ) {
    print "First argument is a number\n";
    while ($line=<>) {
        push(@list, $line);
    }
    @list = reverse @list;
    foreach (@list) {
       if ( $counter == $numlines ) {
          last;
       }
       print "$_";
       $counter++;
    }
    exit 0;
}

条件应该反过来

if ($numlines =~ /^-?\d+$/)