如何在perl中转储字符串以查看是否存在任何字符差异?

xen*_*ide 2 unicode perl encoding dump character-encoding

我偶尔遇到字符串略有不同的问题,在某些情况下utf8 ::都改变了行为,所以我认为细微差别是unicode.我想以这样一种方式转储字符串,使差异对我来说是可视的.这样做有什么选择?

rua*_*akh 5

我推荐的Dump功能Devel::Peek在Perl的核心模块:

$ perl -MDevel::Peek -e 'Dump "abc"'
SV = PV(0x10441500) at 0x10491680
  REFCNT = 1
  FLAGS = (PADTMP,POK,READONLY,pPOK)
  PV = 0x10442224 "abc"\0
  CUR = 3
  LEN = 4

$ perl -MDevel::Peek -e 'Dump "\x{FEFF}abc"'
SV = PV(0x10441050) at 0x10443be0
  REFCNT = 1
  FLAGS = (PADTMP,POK,READONLY,pPOK,UTF8)
  PV = 0x10449bc0 "\357\273\277abc"\0 [UTF8 "\x{feff}abc"]
  CUR = 6
  LEN = 8
Run Code Online (Sandbox Code Playgroud)

(你看第二个例子中是如何FLAGS包含UTF8的,因为广泛的字符,但不是在第一个?)