Давно не пытался на Perl писать, возник самый ламерский вопрос... Как на нём сделать это (знаю что ужас, но что поделать) PHP: <?php $string = str_replace( array("\r\n", "\r", "\n", "\t"), array('<br>', '<br>', '<br>', '[i]&[/i]nbsp; [i]&[/i]nbsp; '), htmlspecialchars(trim($string)) ); ?>
Я конечно не специалист в Perl, но подозреваю, что более элегантного решения придумать не получится :? Поэтому так: Код (Text): # эта функция нагло украдена с форума dklab :) sub HtmlSpecialChars($) { my ($st)=@_; return $st if !defined $st; $st =~ s/&/&/g; $st =~ s/</</g; $st =~ s/>/>/g; $st =~ s/"/"/g; return $st; } %replaces = ( "\r\n" => '<br>', "\r" => '<br>', "\n" => '<br>', "\t" => '    ' # пришлось так запостить а иначе форум сущности не отображает ); $string =~ s/^\s+//; # ltrim() $string =~ s/\s+$//; # rtrim() $string = HtmlSpecialChars($string); while(($find,$replace) = each(%replaces)) { $string =~ s/$find/$replace/g; # собсно меняем }