正则表达式似乎有效,但在Perl中不起作用

Mem*_*eak 0 regex perl

我有正则表达式教练验证的正则表达式

(\d+)\.(\d+)\.(\d+) (\d+):(\d+):(\d+)
Run Code Online (Sandbox Code Playgroud)

这符合dd.mm.yyyy hh:mm:ss格式,但在Perl我没有收到任何东西

我的数组包含这两个条目

foo 24.03.2014 19:18:57 foobar foo bar
bar 24.03.2014 15:19:00 asdfasrwe jlkj 
Run Code Online (Sandbox Code Playgroud)

这是我的Perl程序

use Try::Tiny;

foreach(@array) 
{
    try {
        my ($day, $month, $year,$hours, $minutes, $seconds) = ($_ =~ m/(\d+)\.(\d+)\.(\d+) (\d+):(\d+):(\d+)/);
        my $time= "$hours:$minutes:$seconds";
        my $date= "$day.$month.$year";
    } catch {
         warn "caught error: $_";
    };
    print "Time: $time, Date: $date\n";
}
Run Code Online (Sandbox Code Playgroud)

输出是

Time: , Date: 
Time: , Date: 
Run Code Online (Sandbox Code Playgroud)

与正则表达式教练一样,我的正则表达式已被批准,并且没有例外.我没有看到我的错误.问题出在哪儿?

在regex101上 - 它似乎合法

小智 6

try块的"我的$ time"和"my $ date"是本地的?你可以在try块中打印这些值吗?