D:\>perl -e "$n=ss; print \"ww$n\n\";" wwss D:\>
上でも書いたけど、エスケープすることで変数展開できるようになるんだな。上のコマンドはPerlに下のように解釈されているんだな。書き下してみると変数展開やメタ文字の解釈が行われるのもぜんぜん不思議じゃないんだな。
$n=ss; print "ww$n\n";
例えば、エスケープしないと変数展開されないどころか、コンパイルもうまくできないんだな。
D:\>perl -e "$n=ss; print "ww$n\n";" Backslash found where operator expected at -e line 1, near "$n\" (Missing operator before \?) syntax error at -e line 1, near "$n\" Execution of -e aborted due to compilation errors. D:\>
これに対してコーテーションにすると変数展開もされないし、メタ文字の解釈もされないんだな。
D:\>perl -e "$n=ss; print 'ww$n\n';" ww$n\n D:\>