case '/': /* may be division, defined-or, or pattern */
if ((PL_expect == XOPERATOR || PL_expect == XTERMORDORDOR) && s[1] == '/') {
...
AOPERATOR(DORDOR);
}
else if (PL_expect == XOPERATOR) {
...
Mop(OP_DIVIDE);
}
else {
...
s = scan_pat(s,OP_MATCH);
}
####
case '.':
...
if (PL_expect == XOPERATOR || !isDIGIT(s[1])) {
...
Aop(OP_CONCAT)
####
$ perl -MO=Deparse -e 'sub foo(&) {}; foo { "foo" } . 5'
sub foo (&) {
}
foo(sub {
'foo';
}
) . 5;
-e syntax OK
$ perl -MO=Deparse -e 'sub foo(&) {}; foo { "foo" } .5'
Too many arguments for main::foo at -e line 1, at EOF
-e had compilation errors.
sub foo (&) {
}
&foo(sub {
'foo';
}
, 0.5);
####
$ perl -E 'say 1 .5'
15