クォート演算子 q//

'STRING' と同等の文字列定義

構文

解説

クォート演算子 q// は、シングルクォーテーションを使わずに文字列を定義することができます。 クォート演算子 q// による文字列定義は、シングルクォーテーションにる定義と同等です。

q// を使うことで、文字列の中にシングルクォーテーションが含まれていても、 バックスラッシュを使ってエスケープする必要はありません。

my $str = q/futomi's CGI Café/;

クォート演算子による文字列定義では、文字列を / で囲む必要はなく、他の記号を使うことができます。 定義する文字列に含まれない記号を使うと良いでしょう。

my $str1 = q(2023/04/02);
my $str2 = q|Windows (64-bit)|;
my $str3 = q!one | two | three!;
my $str4 = q<Go!>;

良くある間違いとして、次のように記述してしまうことがあります。

print q('Hello');    # Hello ではなく 'Hello' と出力される

これはシングルクォーテーションも文字列に含まれてしまいます。 もちろん、それが意図的なら問題ありませんが、意外に間違えてしまうので注意してください。