用/在Perl中拆分序列

nev*_*int 1 arrays perl split

我有一个如下所示的序列:

my $seq = "D\IKLR\LK/Q";
Run Code Online (Sandbox Code Playgroud)

我想要做的是将序列分解为单个字母.

所以我希望得到:

my $var = ['D', '\', 'I', 'K', 'L', 'R', '\', 'L', 'K','/' ,'Q'];
Run Code Online (Sandbox Code Playgroud)

但为什么这样做不会:

 my @chars = split(//,$seq);
 print Dumper \@chars;
Run Code Online (Sandbox Code Playgroud)

它改为:

my $var = ['D', '\\', 'I', 'K', 'L', 'R', '\\', 'L', 'K', 'Q'];
Run Code Online (Sandbox Code Playgroud)

做正确的方法是什么?

cod*_*ict 6

你得到的正是你想要的.

代表单一的方式\'\\',而不是'\'如你预期的,因为\'\'转义第二个'使该字符串不完整的,但Data::Dumper总是可以返回值eval,因为它是Perl代码编.

但是打印通过循环打印阵列的各个元素将打印出来\.

  • 值得澄清的是,"Data :: Dumper"将数据结构打印为Perl代码,可以"eval"来反序列化结构.如果你要直接打印`@chars`中的值,你会看到你想要的单个'\\`.(Heheh - 我不得不输入'\\\\`来让它显示出来.而且我必须输入`\\\\\\\\`以获得**显示......) (3认同)