区别一:
单引号除了反斜字符和单引号外,单引号内所有字符都代表它们自己,比如“ ”都是代表字符串本身,即单引号内的 并不是换行符,而是表示字面上的两个字符;
而双引号中的反斜线更为强大,可以转义许多控制字符,双引号中“ ”分别代表水平制表符和换行;
print 'hello world
';
print "hello world
";
结果:
区别二:
双引号支持变量内插,即会将字符串内的变量名称替换成该变量当前的值,而单引号不支持该特性,直接将当成字符串出来。
my $string = "china";
print ' hello world $string ';
print "
hello world $string";
结果:
当perl进行检查变量名称时,它可能会违背你的意愿,会将后面的字符串当做变量的一部分,导致运行结果不符合预期;避免歧义的办法之一是用一对花括号将变量名包围起来。例如:
my $fruit = "apple";
print "there are five ${fruit}s";