This doesn't answer your question on efficiency, but if you really like using the period, you could always force list context.
print (@array) . "\n";
That won't quite do what you intend. First, parentheses around an expression do not force list context. Consider print ( (@array) . "\n");, which prints the size of the array, just as without any parentheses.
Parentheses do affect precedence, however, which leads to the second problem. The parentheses in your snippet cause perl to treat the print as a function call, with the concatenation applied to the result. This has the same effect as:
(print(@array)) . "\n";
The contents of @array will be printed, print's return value will be concatenated with newline, and the resulting string will be discarded.
With warnings enabled, your code would produce:
print (...) interpreted as function at - line 1.
Useless use of concatenation in void context at - line 1.
Useful ways to print an array include:
print @array, "\n"; # joined with ''
print "@array\n"; # joined with $", ' ' by default
print join("\t", @array), "\n"; # joined with whatever you specify