/ / Посочете няколко класа в HTML :: Рутината look_down на Element Perl? - perl, клас, for-loop, html-tree

Посочете няколко класа в рутината на HTML :: Element's look_down Perl? - perl, class, for-loop, html-tree

Използвам HTML :: TreeBuilder да разберем малко HTML.

Можете ли да посочите няколко класа в „погледни надолу"рутина?

Защото в позиция при търсене чрез HTML, използвайки-

for ( $tree->look_down( "class" => "postbody"))

Аз също трябваше да търся допълнителен клас "postprofile" в същия цикъл.

Има ли начин да направите това, без да се налага да използвате нов -for ( $tree->look_down( "class" => "postprofile" ))

Тъй като това връща 2 серии резултати, докато искам само един обединен набор.

Опитах да използвам - for ( $tree->look_down( "class" => "postbody||postprofile")) Това обаче не даде резултат,

Благодаря ви предварително.

Отговори:

9 за отговор № 1

Опитайте да използвате шаблон вместо низ, т.е.

$tree->look_down( "class" => qr/^(?:postbody|postprofile)$/)

1 за отговор № 2

Джамбо, не се опитвам да бъда груб, но моля, прочетете ръководството. Добавих линкове към вашия въпрос.

Предполагам, че не сте чели документите, защото не сте успели да ги намерите. Нека адрес че проблем:

Как да намерите нужните ви документи

Онлайн:

  • search.cpan.org е основен уебсайт, използван за търсене на CPAN модули и тяхната документация. Много неща могат да бъдат намерени там.

  • perldoc.perl.org разполага с пълната документация за доставка онлайн за няколко скорошни версии на Perl.

Командна линия:

  • perldoc показва съдържанието, съдържащо различни раздели на документацията, които можете да разгледате.

  • perldoc -f function е бърз начин за търсене на perlfunc и преглед на информацията само за една функция. Това е супер удобна бърза справка.

  • perldoc Module::Name::Here ще ви покаже документация на модул.

  • perldoc perlpod е извадка от четене на раздел от документите, в случая статията за POD форматирането.

Кое нещо да прочета?

Всичко това е страхотно, но как да разберете къде да търсите? Искам да кажа, че имам това нещо, наречено "look_down", което използвам. Къде са документите?

В този случай можете да видите, че „look_down“ винаги се нарича така $somevar->look_down(blarg), Намерете къде $somevar идва от. Какъв предмет е? Най-лошият случай, открихте, че е резултат от някакво друго обаждане, сега трябва да намерите документите за ТОЗИ разговор и да видите какво е върнато. Но стъпките са същите. Рекурсивно натиснете през. В крайна сметка ще стигнете my $tree = HTML::TreeBuilder->new_from_content() Или нещо такова. Сега можете да прочетете new_from_content документи в HTML :: TreeBuilder. Ей, ние получаваме HTML :: дърво обект, който е подклас на HTML :: елемент! Така че проверяваме и двата класа. Кой, look_down е в HTML :: Element.

Това е малко по-сложно, ако имате подпрограми, които се импортират от други модули. Надяваме се, че авторът на вашия код е бил достатъчно внимателен, за да изрично изброи откъде идват неговите рутинни процедури:

use Some::Module qw( useful_sub  confusing_sub );

Това означава, че useful_sub и confusing_sub идвам от Some::Module;

Ако нямате късмет, вашият автор е писал само use Some::Module; което означава, че получавате целия износ по подразбиране. Което означава, че трябва да прочетете документите, за да разберете какво е било внесено.

Заради поддръжката, можете да намалите този кошмар, като винаги посочвате какви подпрограми импортирате от дадена функция. Ако искате да импортирате НИЩО, можете да зададете това като: use Some::Module ();

Когато търсите обикновени под-имена, помага да запомните, че те може да са действителни функции. Така че не забравяйте да търсите Perldoc.

В заключение, надявам се да намерите това полезно. R-ing TFM е невероятно мощна техника и научаването как да намерите подходящи документи е скритото умение, което отключва силата. Perl има много документи, през които може да се преодолее, и може да бъде плашещо, когато не знаеш къде да търсиш.