... from my trial and error it seems [the parser is] trying to do modulo using the return value of print function ( = "1" ) ...
Perl can tell you with perfect clarity (update: and lots of parentheses) exactly how it sees the syntax it's trying to compile.
See core modules O and B.
Win8 Strawberry 5.8.9.5 (32) Tue 07/04/2023 15:01:58
C:\@Work\Perl\monks
>perl -wMstrict -MO=Deparse,-p -le "print (5+6) + (6*7) + (7**8);"
print (...) interpreted as function at -e line 1.
Useless use of addition (+) in void context at -e line 1.
BEGIN { $^W = 1; }
BEGIN { $/ = "\n"; $\ = "\n"; }
use strict 'refs';
((print(11) + 42) + 5764801);
-e syntax OK
>perl -wMstrict -MO=Deparse,-p -le "print +(5+6) + (6*7) + (7**8);
+"
BEGIN { $^W = 1; }
BEGIN { $/ = "\n"; $\ = "\n"; }
use strict 'refs';
print(5764854);
-e syntax OK
Win8 Strawberry 5.30.3.1 (64) Tue 07/04/2023 15:03:46
C:\@Work\Perl\monks
>perl -wMstrict -MO=Deparse,-p -le "print (5+6) + (6*7) + (7**8);"
print (...) interpreted as function at -e line 1.
Useless use of addition (+) in void context at -e line 1.
BEGIN { $^W = 1; }
BEGIN { $/ = "\n"; $\ = "\n"; }
use strict;
((print(11) + 42) + 5764801);
-e syntax OK
>perl -wMstrict -MO=Deparse,-p -le "print +(5+6) + (6*7) + (7**8);
+"
BEGIN { $^W = 1; }
BEGIN { $/ = "\n"; $\ = "\n"; }
use strict;
print(5764854);
-e syntax OK
Give a man a fish: <%-{-{-{-<
|