First off, "= [...] ." isn't an operator as per the original topic. That's two operators. ;-)
However, more importantly, this is just not how I mentally think of creating a string. If I want to generate a string such as "this is the output", I don't think about starting with the string "output" and prepending a bunch of stuff. I think about how to create "this", then I think of how to create "is", etc. It's actually quite rare that I'll want to generate "the" before I generate "is". In fact, I often end up with code like this:
my @text;
push @text, generate_this();
push @text, generate_is();
push @text, generate_the_output();
return join ' ', @text;
That's just how I think of the string, and I find that when my code matches the problem in my head, it's far less likely to have bugs in it. Especially expensive
design bugs.