There are seven ways I can immediately think of, and you've picked one of the clearest and easiest. Here is the list I can come up with:
- The . (dot) operator: concatenation.
- The .= operator: append.
- substr: Substring manipulation.
- join: Joining two or more strings.
- s/(...)/$1$string/: Substitution.
- The qq/...../ or "...." operator: interpolation.
- open: open my $fh, '>+', \$variable or die $!;: Print to an in-memory filehandle.
I'm sure I've missed a few, but these ways jump to mind immediately. The last method I listed; open, is pretty obfuscatory in nature. There aren't many situations I can think of where it would be a favorable approach, especially if simple concatenation is your goal. But it's there, so I mentioned it.
dot (.) and dot-equals (.=) are definitely the simplest and clearest approaches.