Как здесь работает сплит? - PullRequest
       1

Как здесь работает сплит?

1 голос
/ 22 августа 2011
$string = 'a=1;b=2';
use Data::Dumper;
@array = split("; ?", $string);
print Dumper(\@array);

выход:

$VAR1 = [
          'a=1',
          'b=2'
        ];

Кто-нибудь знает, как "; ?" здесь работает? Это не регулярное выражение, но работает как регулярное выражение, поэтому я не понимаю.

Ответы [ 3 ]

3 голосов
/ 22 августа 2011

Я думаю, что это означает «точка с запятой, за которой следует дополнительный пробел (только один или ноль)».

Это не регулярное выражение, но работает как регулярное выражение, поэтому я не понимаю.

Параметр шаблона для разделения всегда обрабатывается как регулярное выражение (хотя лучше не использовать строку). Единственным исключением является «один пробел», который понимается как «разделить пробел»

1 голос
/ 22 августа 2011

Первый параметр split - это регулярное выражение .Так что я бы лучше написал split /; ?/, $string;.Когда вы используете строку для первого параметра, это просто означает, что регулярное выражение может меняться и должно быть скомпилировано заново каждый раз при выполнении разделенияПодробнее см. perldoc -f split.

Можно прочитать регулярное выражение; символ ";"по желанию следует пробел .Подробности смотрите в perlretut и perlreref.

0 голосов
/ 22 августа 2011

Точка с запятой (;), за которой следует необязательный (?) Пробел (the).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...