问字符匹配问题!

问字符匹配问题!

#!/usr/bin/perl

$a=<>;
$rel=&pos($a);

sub pos{
                  if(grep{/[0-9]/}$_[0]){        
                             print "数字!";
                    }else{
                             print "其它!";
                    }

             }


刚学perl不久请大家多指教!
上面的代码$a 有时候会输入是123345 或 12343*23434 或 *#43*342 或 2341#245 等 总之( 数字 和 * 和 #号).
if(grep{/[0-9]/}$_[0]) 这里我想只允许$_[0]全是数字才能通过的,但现在这个表达式不行,现在都通过了, 如果只允许数字通过..那匹配表达式怎么写呢?.
/^[0-9]*$/   #会匹配空行
/^[0-9]+$/   #不会匹配空行

[0-9]可以简写为\d


[Copy to clipboard] [ - ]
CODE:
use strict; use warnings;
chomp(my $a=<>);
num_check($a);
sub num_check{
        if($_[0]=~/\D+/){        
                print "其它!";
        }else{
                print "数字!";
        }
}

你写的真简省……,我照你那个改的

pos是perl的函数……,你还是改名吧
问题已解决...! 谢谢各位指点!!