web-dev-qa-db-ja.com

PerlにはPythonの複数行の文字列に相当するものがありますか?

Pythonでは、docstringを使用してこのような複数行の文字列を作成できます

foo = """line1
line2
line3"""

Perlに同等のものはありますか?

21
Mike

Perlには重要な構文上の垂直方向の空白がないので、次のことができます。

$foo = "line1
line2
line3
";

これは

$foo = "line1\nline2\nline3\n";
34
ire_and_curses

通常の引用:

# Non-interpolative
my $f = 'line1
line2
line3
';

# Interpolative
my $g = "line1
line2
line3
";

Here-docsを使用すると、引用されたテキストのブロックの終わりとして任意のトークンを定義できます。

# Non-interpolative
my $h = <<'END_TXT';
line1
line2
line3
END_TXT

# Interpolative
my $h = <<"END_TXT";
line1
line2
line3
END_TXT

正規表現スタイルの引用演算子を使用すると、ほぼすべての文字を区切り文字として使用できます。これは、正規表現で区切り文字を変更できるのと同じ方法です。

# Non-interpolative
my $i = q/line1
line2
line3
/;

# Interpolative
my $i = qq{line1
line2
line3
};

更新:ヒアドキュメントトークンを修正しました。

38
daotoad

はい、ヒアドキュメントです。

$heredoc = <<END;
Some multiline
text and stuff
END
16
Steve

はい、2つのオプションがあります:

1.ヒアドキュメントは、ヒアドキュメント内のすべてのデータが補間されることに注意してください:

私の$ data = <

あなたのデータ

終わり

2.qq()例を参照してください:

qq(HTML

$ your text

HTML);

0
oren