You seem to be subtly misinterpreting the way context works in perl. There is no such thing as "default" context for a given operation or expression. An expression is either in list, scalar, or void context depending upon how it is being used.
Furthermore, the placement of parens around an expression doesn't put that expression into list context. The only time parens determine context is when they are placed around the left side of an assignment, thereby providing list context for the right side of the assignment.
Arguments to unprototyped user subroutines are always evaluated in list context, which is what you observed in your example. However, had you prototyped your subroutine as sub _Printer ($$$$$$) { ... }, you would have seen your regex evaluated in a scalar context, regardless of whether or not there were parens around it.
Basically, no function/operator has any say as to what context its result is provided in. The causality works in the other direction. When you observed that you had to force scalar on your regex, it was not because the regex had been in list context by default, but because you were using the regex in list context.
MeowChow
s aamecha.s a..a\u$&owag.print |