Precedence issue. Use B::Deparse with -p to see how Perl interprets the code:
$ perl -MO=Deparse,-p -e '($s,$m,$h,$md,$mo,$y,$w,$g,$i)=localtime;pri
+nt $y+1900 . "." . ($mo+1) . ".$md." . ($h-5) . "$m\n";'
(($s, $m, $h, $md, $mo, $y, $w, $g, $i) = (localtime));
print((((((($y + 1900) . '.') . ($mo + 1)) . ".$md.") . ($h - 5)) . "$
+m\n"));
$ perl -MO=Deparse,-p -e '($s,$m,$h,$md,$mo,$y,$w,$g,$i)=localtime;pri
+nt $y+1900 . "." . $mo+1 . ".$md." . ($h-5) . "$m\n";'
(($s, $m, $h, $md, $mo, $y, $w, $g, $i) = (localtime));
print(((((((($y + 1900) . '.') . $mo) + 1) . ".$md.") . ($h - 5)) . "$
+m\n"));
map{substr$_->[0],$_->[1]||0,1}[\*||{},3],[[]],[ref qr-1,-,-1],[{}],[sub{}^*ARGV,3]
|