Курс Raku / Розширені / Докладніше про вбудовані типи / Конструкції квотування 🆕 / Вправи / Heredoc
Розв’язання: Heredoc
Ось один із можливих варіантів розв’язання задачі.
Код
my $name = 'Anna';
my $item = 'Raku Book';
my $price = 25;
my $count = 3;
print qq:to/END/;
Dear $name,
You ordered $count copies of "$item".
That comes to {$count * $price} dollars.
Thank you!
END🦋 Вихідний код можна знайти у файлі a-heredoc.raku.
Вивід
Dear Anna,
You ordered 3 copies of "Raku Book".
That comes to 75 dollars.
Thank you!Коментарі
Heredoc починається з
qq:to, а не зq:to, тож він інтерполює. Як і рядокqq, він підставляє скаляри —$name,$count,$item— і виконує вбудований код: блок{$count * $price}обчислює3 * 25, тож підсумок75з’являється просто в тексті.Подвійні лапки навколо
"$item"тут є просто буквальними символами; усередині heredoc-а немає роздільника, який треба екранувати, тож вони виводяться як записано, а$itemусе одно інтерполюється.Тіло й закривальне
ENDмають однаковий відступ у чотири пробіли. Відступ термінатора прибирається з кожного рядка, тож ці чотири пробіли ніколи не потрапляють у рядок — вивід починається з лівого краю.Heredoc уже закінчується переходом рядка, тож використано
print, а неsay, щоб не додати другого порожнього рядка.
Навігація курсом
← Heredoc | Дата та час →