Разделение последовательности с / в Perl - PullRequest
1 голос
/ 24 ноября 2011

У меня есть последовательность, которая выглядит следующим образом:

my $seq = "D\IKLR\LK/Q";

я хочу разбить последовательность на отдельные буквы.

Так что я надеюсь получить:

my $var = ['D', '\', 'I', 'K', 'L', 'R', '\', 'L', 'K','/' ,'Q'];

Но почему это не так:

 my @chars = split(//,$seq);
 print Dumper \@chars;

Вместо этого он дал:

my $var = ['D', '\\', 'I', 'K', 'L', 'R', '\\', 'L', 'K', 'Q'];

Как правильно это сделать?

1 Ответ

6 голосов
/ 24 ноября 2011

То, что вы получаете, это именно то, что вы хотите.

Способ представления одного \ - '\\', а не '\', как вы ожидали, потому что \ в '\' экранирует второй ', делая строку неполной, но Data::Dumper возвращаемое значение всегда может быть eval как его Perl-код.

Но при печати отдельных элементов массива с помощью повторения по нему будет напечатано \.

...