http://www.perlmonks.org?node_id=964627


in reply to String concatenation

Use whichever most clearly shows the intent of your code. I can see cases for concatenation and interpolation and join().

For example, I prefer the first one in this example. I think it feels more like reading prose.

print "Action status: $status"; # Preferred by me print 'Action status: ' . $status;

But say you're building a string to show the time. I think the first highlights the elements that are being used to build $date.

$date = join( '/', $day, $month, $year ); # Preferred by me $date = "$day/$month/$year";

And sometimes it doesn't make sense to interpolate or join and you just concatenate.

$response = $head . $html_opening . $body . $html_closing; # preferred $response = join( '', $head, $html_opening, $body, $html_closing );
Bottom line: Go for what is most expressive, and makes the code clearest to the reader. Assume that any microseconds you shave will be insignificant.

xoxo,
Andy

Replies are listed 'Best First'.
Re^2: String concatenation
by Anonymous Monk on Apr 11, 2012 at 21:50 UTC
    Thanks to all, Andy I agree entirely. I've been slapped on the hand for not being consistent but since speed has little difference between the various methods readability is the key. Being consistently readable is the ideal. Choosing one method and sticking with it is nonsensically dogmatic. I just needed a sounding board, sorry if it seemed trivial. I can now fight my corner with a little more confidence. Thanks Monks.