perl 为什么模式匹配失灵perl 程序 my $time_h='2010-09-30 00:00:00';if($time_he=~/(\d+)\-(\d+)\-(\d+)\s+(\d+)\:\d+\:\d+/){print "OK!\n";my $y=$1;my $m=$2;my $d=$3;my $h=$4;my $time=preDateStr($y,$m,$d,$h,0,0);print "$time\n";}OK可以打印

来源:学生作业帮助网 编辑:作业帮 时间:2024/05/12 15:04:26
perl 为什么模式匹配失灵perl 程序 my $time_h='2010-09-30 00:00:00';if($time_he=~/(\d+)\-(\d+)\-(\d+)\s+(\d+)\:\d+\:\d+/){print

perl 为什么模式匹配失灵perl 程序 my $time_h='2010-09-30 00:00:00';if($time_he=~/(\d+)\-(\d+)\-(\d+)\s+(\d+)\:\d+\:\d+/){print "OK!\n";my $y=$1;my $m=$2;my $d=$3;my $h=$4;my $time=preDateStr($y,$m,$d,$h,0,0);print "$time\n";}OK可以打印
perl 为什么模式匹配失灵
perl 程序 my $time_h='2010-09-30 00:00:00';
if($time_he=~/(\d+)\-(\d+)\-(\d+)\s+(\d+)\:\d+\:\d+/){
print "OK!\n";
my $y=$1;
my $m=$2;
my $d=$3;
my $h=$4;
my $time=preDateStr($y,$m,$d,$h,0,0);
print "$time\n";
}
OK可以打印出来,为什么模式匹配匹配不出来呢?
$1,$2,$3,$4 都是空的.

perl 为什么模式匹配失灵perl 程序 my $time_h='2010-09-30 00:00:00';if($time_he=~/(\d+)\-(\d+)\-(\d+)\s+(\d+)\:\d+\:\d+/){print "OK!\n";my $y=$1;my $m=$2;my $d=$3;my $h=$4;my $time=preDateStr($y,$m,$d,$h,0,0);print "$time\n";}OK可以打印
你定义的私有变量是$time_h,下面判断却用的$time_he,两个名字就不一样嘛.
你应该学着先自己debug,在打印你的$time前,my $y=$1的后面跟个print $1,这样方便后面出问题的时候调试,在调试成功后,再把这些不需要的用#注释掉.
比如:
my $time_h='2010-09-30 00:00:00';
if($time_h=~ /(\d+)\-(\d+)\-(\d+)\s+(\d+)\:\d+\:\d+/)
{

my $y=$1; print "$1\n";
my $m=$2; print "$2\n";
my $d=$3; print "$3\n";
my $h=$4; print "$4\n";
print "OK!\n";
my $time=preDateStr($y,$m,$d,$h,0,0);
print "$time\n";
}
改过了,把那个ok打印放后面就行了,楼主记得前面变量你是用错了的至于你那个preDateStr函数,应该不是自带的.