22

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

foo = """line1
line2
line3"""

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

4

5 に答える 5

40

通常の引用符:

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

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

ヒアドキュメントを使用すると、引用テキストのブロックの終わりとして任意のトークンを定義できます。

# 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
};

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

于 2010-05-20T19:37:14.633 に答える
35

Perl には重要な構文上の垂直空白がないため、次のようにすることができます。

$foo = "line1
line2
line3
";

これはと同等です

$foo = "line1\nline2\nline3\n";
于 2010-05-20T18:45:49.393 に答える
17

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

$heredoc = <<END;
Some multiline
text and stuff
END
于 2010-05-20T18:40:08.670 に答える
0

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

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

私の $data =<

あなたのデータ

終わり

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

print qq( HTML

$あなたのテキスト

HTML );

于 2010-05-21T14:58:55.013 に答える