Ищет ответ на этот вопрос, но не повезло. Позорно спрашиваю, потому что я думаю, что у меня нет чего-то фундаментального. Этот код является частью скрипта HTML + CGI, который загружает файл, извлекает его и затем отображает информацию в формате HTML из загруженного файла на основе выбора формы. Эта часть состоит в том, чтобы создать список .xml-файлов в каталоге с именем «mylogs», а затем удалить часть пути и добавить символы, чтобы сделать его действительной ссылкой HTTP.Perl regex и <character
Он работает до for (@array) {s/^/<a href="/};
, и чем меньше символов вызывает проблема, потому что если я удалю его, он обработает все остальное. При включенном символе меньше всего он удаляется.
my $dir = "$upload_dir/var/mylogs";
my @array = <$dir/*.xml>;
for (@array) {s/\/volume1\/web//g};
for (@array) {s/^/http:\/\/192.168.1.155/g};
for (@array) {s/^/<a href="/g};
for (@array) {s/$/<a\/>/g};
Я пробовал ускользнуть от персонажа, но не работал. Любые идеи, почему это происходит, или лучший способ достижения указанного конечного результата?
Спасибо за ваше время.
'<' не имеет специального значения в регулярном выражении, но имеет смысл в HTML. Если вы просматриваете только результат в веб-браузере, вы ничего не увидите, потому что тег не завершен должным образом, как объяснил @Adrian Pronk. Просмотрите источник или запустите сценарий в терминале, чтобы узнать, что вы на самом деле генерируете в качестве вывода. – RickF