Perl中的单引号字符串不支持转义字符,双引号字符串支持转义字符
如下 双引号中的\t \x \r \n是有作用的 单引号中的无作用
$ cat test_stresc.pl
#!/usr/bin/perl
use warnings;
use strict;
my $str_sq = '1Aa\t\x31\x41\x61\t\x{263a}\r\n';
my $str_dq = "1Aa\t\x31\x41\x61\t\x{263a}\r\n";
print "str_sq:[$str_sq] --> ", unpack("H*", $str_sq), "\n";
print "str_dq:[$str_dq] --> ", unpack("H*", $str_dq), "\n";
$ ./test_stresc.pl
str_sq:[1Aa\t\x31\x41\x61\t\x{263a}\r\n] --> 3141615c745c7833315c7834315c7836315c745c787b323633617d5c725c6e
Wide character in print at ./test_stresc.pl line 9.
str_dq:[1Aa 1Aa ☺
] --> 3141610931416109e298ba0d0a
Perl转义字符含义
\n 换行
\r 回车
\t 水平制表符
\f 换页符
\b 退格
\a 系统响铃
\e ESC (ASCⅡ 编码的转义字符)
\007 任何八进制的ASCⅡ(此例子007表示系统响铃)
\x7f 任何十六进制的ASCⅡ(此例子7f表示删除键的控制代码)
\cC 控制符,也就是control键的代码(此例子此表示同时按下ctrl键和C键的返回码)
\\ 反斜线
\" 反双引号
\l 将下个字符转为小写
\L 将到\E为止的所有字符转为小写
\u 将下个字符转为大写
\U 将到\E为止的所有字符转为大写
\Q 将到\E为止的非单词(non-word)字符加上反斜线
\E 结束\L、\U、\Q
如果字符串中含有.号 等特殊符号时 数据库的密码呀 帐号之类的 这时 用双引号和单引号 括起来都是错误的 无法连接成功。
这时要用反引号括起来 反引号就是键盘左上角~符号下的· 这样连接数据库时就ok了
标签:--,sq,perl,转义字符,1Aa,str,字符串,特殊符号,dq From: https://blog.51cto.com/u_16218512/7005107