Dans toute langue qui les prend en charge, un heredoc est un moyen pratique de faire une grande chaîne littérale.
Prenez le script Ruby artificiel suivant qui prend votre nom et fournit le code source d'un programme C qui vous dit bonjour:
#!/usr/bin/env ruby
name = $*[0]
unless name
$stderr.puts "Please supply a name as the first argument to the program"
exit 1
end
source = <<EOF
#include <stdio.h>
int main()
{
puts("Hello, #{name}!");
return 0;
}
EOF
puts source
Autre qu'un heredoc, l'autre option pour faire la source est de le spécifier ligne par ligne, ce qui devient fastidieux et potentiellement sujette aux erreurs (surtout lorsque vous avez des devis intégrés).
Merci pour votre aide. – Ikaso
Ils fonctionnent très bien pour les modèles en ligne simples, similaires à un modèle ERB. Ils ne sont pas aussi flexibles, mais parfois ils sont juste le billet. –