ダブルクォートで囲まれた文字列中の変数が、スペースなどで区切られていれば変数として認識できるが、そうでない場合は認識できない場合がある。"${str}"のように'{'と'}'で区切ることで変数であると認識可能にできる。
変数展開時の変数名と文字列の区切り - 変数 - Perl入門
#!/usr/bin/perl # 文字列変数 $str = "ABC"; # $strに"ABC"を格納. # 文字列変数を含めた文字列の出力. print "abc$strXYZ\n"; # 区切りなく文字列変数を展開させようとする.
これだと、
$ perl variable.pl abc $
"$strXYZ"という変数として認識してしまい、その変数が存在しないので、"abc"しか出力されない。
"${str}"とすると、
$ perl variable.pl abcABCXYZ $
$strもXYZも出力されている。
Sample/perl/variable/string_variable_expansion/src/variable at master · bg1bgst333/Sample · GitHub