|
ru.perl- RU.PERL ---------------------------------------------------------------------- From : Artem Chuprina 2:5020/400 19 Mar 2001 18:03:49 To : smb@mh.vstu.edu.ru Subject : Re: <title> </title> -------------------------------------------------------------------------------- Здравствуй, Michael Smirnov. В твоём письме от Mon, 19 Mar 2001 13:51:34 +0000 (UTC) написано: smver>> foreach (<DATA>) { smver>> chomp; smver>> if ( m|<title>(.*)</title>| && ($title=$1) ) { smver>> print "тря-ля-ля...$title"; smver>> last; smver>> } <title>>Заголовок, >> разрезанный на две строки</title> >> вышеприведенная конструкция, вкупе с модификатором s оператора m, как раз >> спасает. Зато прочесть придется весь файл. Можно было бы порекомендовать $/="</title>>", что позволит вырезать содержимое <title>..</title>, но не >> позволит решить задачу, стоящую на самом деле, то есть вырезать заголовок >> HTML-документа - имена тегов case insensitive. smver> Да, работает: $_=join('',<DATA>>); smver> if ( m|<title>(.*)</title>|is && ($title=$1) ) { smver> print "......"; smver> } smver> Жаль, что не работает это: smver> if ( <DATA> =~ m|<title>(.*)</title>|is && ($title=$1) ) { smver> print "......"; smver> } smver> Хотелось бы как-нибудь совместить чтение из файла с поиском smver> в одной строчке. А слабо было прочесть письмо целиком? Твоя конструкция однофигственна local $/ = undef; А то, что я имел в виду - сложнее. Как минимум - while (<DATA>) { $html .= $_; if ($html =~ m#<title>(.*)</title>#is) { print $title=$1; last; } } close DATA; -- Artem Chuprina E-mail: ran@ran.pp.ru Programmer FIDO: 2:5020/371.32 Memonet Ltd. Phone: +7-095-284-1356 --- ifmail v.2.15dev5 * Origin: NTV Internet (2:5020/400) Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.perl/16483ad073a59.html, оценка из 5, голосов 10
|