Hacker News new | past | comments | ask | show | jobs | submit login

Depends on what you're doing. In a small string, there isn't much difference. It's more useful when doing other things:

  my $message = <<"HEREDOC";
  Greetings @{[ get_planet() ]}lings,

  We come in peace.
  
  Sincerely,
  Your New @{[ get_invaders() ]} Overlords
  HEREDOC
Sure you can jam them into variables first, or use sprintf, but it's a matter of preference so long as you know what you're doing.



You can also use http://search.cpan.org/dist/Interpolation/lib/Interpolation.... for this problem. But if you've got a lot of text, I prefer to bite the bullet and graduate to a proper templating system.

However my point still stands. You need to be aware that it does not simply interpolate the function output in, it also switches you from scalar to list context. (IMO context is the worst idea in Perl, but it is here to stay so you need to know about it.)




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: