Почему мое использование функции разделения Perl не разделяется? - PullRequest
1 голос
/ 07 февраля 2010

Я пытаюсь разбить HTML-документ на его заголовок и тело:

my @contentsArray = split( /<\/head>/is, $fileContents, 1);
if( scalar @contentsArray == 2 ){
    $bodyContents = $dbh->quote(trim($contentsArray[1]));
    $headContents = $dbh->quote(trim($contentsArray[0]) . "</head>"); 
}

это то, что у меня есть. $fileContents содержит код HTML. Когда я запускаю это, оно не разделяется. Кто-нибудь знает почему?

Ответы [ 2 ]

6 голосов
/ 07 февраля 2010

Третий параметр для разделения - это количество результатов, которые вы хотите получить, поэтому если вы хотите применить выражение только один раз, вы передадите 2.

Обратите внимание, что на самом деле это ограничивает количество раз, которое шаблон используется для разбиения строки (на единицу меньше, чем переданное число), а не просто ограничивает количество возвращаемых результатов, так что:

print join ":", split /,/, "a,b,c", 2;

выходы:

a:b,c

не

a:b
1 голос
/ 07 февраля 2010

извини, разобрался. Думал, что 1 было, сколько раз это выражение нашло бы, что не ограничивает результаты. Поменял на 2 и работает.

...