4

基本的な perl スクリプトに問題があります。以下はスクリプトです。

$message = "Hello, World!";
print $message;

問題は、同じ行に自分のユーザー名のコマンドプロンプトが表示されることです。説明した問題のスクリーンショットを提供しました。スクリプトに改行を追加したいだけです。これは可能ですか?

ここに画像の説明を入力

4

1 に答える 1

11

スクリプトに改行を追加したいだけです。これは可能ですか?

はい - 改行文字を使用して\nください。

my $msg = "Hello World!\n";

perl での一重引用符と二重引用符の違いに注意してください。上記は改行で印刷されます。でもこれは:

my $msg = 'Hello World!\n';

最後にリテラル \n を出力します。違いは、二重引用符で囲まれた文字列が補間されることです。変数やエスケープ シーケンスなどは、\n予測どおりに置換されます。一重引用符で囲まれた文字列はそうではありません。

print '$msg';

variable の内容ではなく、文字通り $msg も出力します$msg

\n多かれ少なかれ普遍的です。それが C に由来するのか、それ以前の何かに由来するのかはわかりませんが、それとその他のさまざまなバックスラッシュ文字 (たとえば、\tタブ) は、シェルを含む、私が知っているすべての言語に共通しています。正しい用語は、実際にはエスケープ シーケンス\あり、次の文字の解釈に影響を与えるエスケープ文字です。補間された文字列に単一のバックスラッシュを出力するには、最初にエスケープを使用する必要があります。

print "\\ <- A single backslash\n";

バックスラッシュは、正規表現のエスケープ文字としても使用されます。一重引用符と二重引用符で囲まれた文字列の違いは、バックスラッシュ エスケープほど一般的ではありませんが、他の高水準言語で使用されています。

于 2013-10-03T10:03:25.367 に答える