差別一:
單引号除了反斜字元和單引号外,單引号内所有字元都代表它們自己,比如“\t \n”都是代表字元串本身,即單引号内的\n并不是換行符,而是表示字面上的兩個字元;
而雙引号中的反斜線更為強大,可以轉義許多控制字元,雙引号中“\t \n”分别代表水準制表符和換行;
print 'hello world \t \n';
print "hello world \t \n";
結果:
差別二:
雙引号支援變量内插,即會将字元串内的變量名稱替換成該變量目前的值,而單引号不支援該特性,直接将當成字元串出來。
my $string = "china";
print ' hello world $string ';
print "\n hello world $string";
結果:
當perl進行檢查變量名稱時,它可能會違背你的意願,會将後面的字元串當做變量的一部分,導緻運作結果不符合預期;避免歧義的辦法之一是用一對花括号将變量名包圍起來。例如:
my $fruit = "apple";
print "there are five ${fruit}s";