Я учу себя Perl и учусь лучше всего на примере. В связи с этим я изучаю простой скрипт на Perl, который очищает конкретный блог и обнаружил, что запутался в паре операторов регулярных выражений. Скрипт ищет следующие фрагменты html:
<dt><a name="2004-10-25"><strong>October 25th</strong></a></dt>
<dd>
<p>
[Content]
</p>
</dd>
... and so on.
и вот пример сценария, который я изучаю:
#!/usr/bin/perl -w
use strict;
use XML::RSS;
use LWP::Simple;
use HTML::Entities;
my $rss = new XML::RSS (version => '1.0');
my $url = "http://www.linux.org.uk/~telsa/Diary/diary.html";
my $page = get($url);
$rss->channel(title => "The more accurate diary. Really.",
link => $url,
description => "Telsa's diary of life with a hacker:"
. " the current ramblings");
foreach (split ('<dt>', $page))
{
if (/<a\sname="
([^"]*) # Anchor name
">
<strong>
([^>]*) # Post title
<\/strong><\/a><\/dt>\s*<dd>
(.*) # Body of post
<\/dd>/six)
{
$rss->add_item(title => $2,
link => "$url#$1",
description => encode_entities($3));
}
}
Если у вас есть момент, чтобы лучше помочь мне понять, мои вопросы:
как работает следующая строка:
([^ "] *) # Имя привязки
как работает следующая строка:
([^>] *) # Заголовок сообщения
что означает «шестерка» в следующей строке:
/ шесть)
Заранее большое спасибо за вашу помощь! Я также изучаю ответы на свои вопросы в данный момент, но надеялся, что кто-то может помочь мне!