У меня есть файл html, хранящийся на диске (файл This). Я хочу удалить все html-теги изображений. Это то, что я пробовал до сих пор.Удаление определенных html-тегов в perl
#!/usr/bin/perl -w
use HTML::TagFilter;
my $tf = new HTML::TagFilter;
open READ, "D:\\Scripts\\file.html" or die "Couldn't open file: $!";
$string1 = join("", <READ>);
close READ;
my $self = HTML::TagFilter->new(deny => {img => {'all'}});
open (MYFILE, '>D:\\Scripts\\remove.html');
print MYFILE $tf->filter($string1);
close (MYFILE);
Если я просто запустить эту программу, она печатает
Odd number of elements in anonymous hash at remove everything else.pl line 9.
Parsing of undecoded UTF-8 will give garbage when decoding entities at C:/Perl64
/site/lib/HTML/TagFilter.pm line 499.
Файл хранится, но он не имеет метки изображения удалены (линия 9, где я применить фильтр). Что я делаю неправильно здесь.
Ошибка говорит все: '{'all'}' имеет нечетное число элементов и, следовательно, не является допустимым хэшем. Замените его '' all'', '{'all' => 'somevalue'}' или '['all']' в зависимости от того, должен ли он быть скаляром, хэшем или массивом. – flesk
И добавьте 'use strict;' в ваш скрипт. Вы выиграете от этого в долгосрочной перспективе. – flesk
Да. Это работает. Но показ объявлений по-прежнему отображается. Любая идея, как удалить их. Также как бы я просто получил контент на этой странице? – user1092042