"STRING" と同等の文字列定義
クォート演算子 qq//
は、ダブルクォーテーションを使わずに文字列を定義することができます。
クォート演算子 qq//
による文字列定義は、ダブルクォーテーションにる定義と同等です。
qq//
を使うことで、文字列の中にダブルクォーテーションが含まれていても、
バックスラッシュを使ってエスケープする必要はありません。
print qq(Say "Hello"); # Say "Hello"
クォート演算子による文字列定義では、文字列を /
で囲む必要はなく、他の記号を使うことができます。
定義する文字列に含まれない記号を使うと良いでしょう。
my $str1 = qq(2023/04/02);
my $str2 = qq|Windows (64-bit)|;
my $str3 = qq!one | two | three!;
my $str4 = qq<Go!>;
良くある間違いとして、次のように記述してしまうことがあります。
print q("Hello"); # Hello ではなく"Hello" と出力される
これはダブルクォーテーションも文字列に含まれてしまいます。 もちろん、それが意図的なら問題ありませんが、意外に間違えてしまうので注意してください。