You actually get a "6" followed by a "4".
in reply to Re: Re: A Perl aptitude test
in thread A Perl aptitude test
The inner print(2 * 3) is evaluated first: it prints 6, and returns the value "1" because the print succeeded. 1 + 3 is 4, so the outer print prints 4. There were no delimiters between the two digits, so they look like one number instead of two sequential digits.
print (print (2 * 3) + 3);
This brings up the original trick question quite nicely: the parentheses on print (2 * 3) + 3 make print() look like a function call, they aren't simply an arithmetic grouping operator in this case.