天天看點

perl中單引号和雙引号字元串差別

差別一:

單引号除了反斜字元和單引号外,單引号内所有字元都代表它們自己,比如“\t \n”都是代表字元串本身,即單引号内的\n并不是換行符,而是表示字面上的兩個字元;

而雙引号中的反斜線更為強大,可以轉義許多控制字元,雙引号中“\t \n”分别代表水準制表符和換行;

print 'hello world  \t \n';

print "hello world  \t \n";
           

結果:

perl中單引号和雙引号字元串差別

差別二:

雙引号支援變量内插,即會将字元串内的變量名稱替換成該變量目前的值,而單引号不支援該特性,直接将當成字元串出來。

my $string = "china";

print '  hello world $string ';

print "\n hello world  $string";
           

結果:

perl中單引号和雙引号字元串差別

當perl進行檢查變量名稱時,它可能會違背你的意願,會将後面的字元串當做變量的一部分,導緻運作結果不符合預期;避免歧義的辦法之一是用一對花括号将變量名包圍起來。例如:

my $fruit = "apple";
print "there are five ${fruit}s";