Perlでは、ヒアドキュメントを実現する方法が何通りか存在する。ヒアドキュメントを引用符で囲むと、一重引用符ならヒアドキュメント内の変数展開が行われないようになり、二重引用符では変数が展開される。またバッククオートならヒアドキュメントの中身がシェルで実行されるというように、普通の文字列を囲む引用符と同様にヒアドキュメントの機能が変化する（何も囲まなければ変数展開が行われる）。
ヒアドキュメントを終わらせる識別子は、行頭に書かなければその役割を果たさない。
なお、ヒアドキュメントは開始の識別子を書いた直後ではなく、その次の行頭から始まるので、ヒアドキュメントを含む命令の続きは識別子の後ろへ書くこととなる。
ダブルクオートで識別子を囲むと、以下のようになる。
出力は以下のようになる。
上の例をシングルクォートにすると、
出力は以下のようになる。
バッククオートで囲んだ例を以下に示す（環境依存）。
BEGIN
And now it is over!
タグ自体に空白文字を含めれば、ヒアドキュメントの終了タグをインデントすることもできる。
Hello World
PHP.
出力は以下のようになる。
ヒアドキュメントの後に続くプログラムは、ヒアドキュメントの終端IDの次の行から書くことになるが、文がヒアドキュメントの直後で終わる場合には、終端IDの直後にセミコロンを書くことができる。この場合のセミコロンを除いて、終端IDと同じ行に（空白文字を含め）余計な文字を書いてしまうと、それは終端として処理されなくなってしまう。正しい終端が見つからないと、PHPはスクリプトの最後でパースエラーとなる。
出力は以下のようになる。
ヒア文字列の中でエスケープシーケンスは処理されず、何を書いても文字通りに認識される。
この文字列は複数行からなっており、
またUnicodeにあるどんな文字でも使うことができる。
この次の行が終端だが、終端の区切り文字にもUnicode文字ならなんでも使える。
上の例を実行すると、以下のように出力される。
 この文字列は複数行からなっており、
 またUnicodeにあるどんな文字でも使うことができる。
 この次の行が終端だが、終端の区切り文字にもUnicode文字ならなんでも使える。
通常の文字列が使えるところなら、たいていヒア文字列を使うことができる。