проблема с Enter при чтении из textarea и записи в файл
теперь мне понадобилось менять этот текст и я читаю его в переменную @q и вывожу.
1. как сплошной текст "print @q"
2. в новый textarea
в первом случае выводится весь файл, но без перехода на другую строку.
во втором печатается только первая строка из файла.
внимание, вопрос )
что надо изменить, чтобы выводилось все содержание файла и у читывались знаки enter.
Попрбую немного погодать...
как вы понимаете в винде(в textarea вчастности) перевод строки осуществялется не \n а \r\n а в html перевод строк осуществялется тегом "
" (это не большое лирическое отступление)
пример 1: print @q
если вы посмотрите код страници то увидете что строки переносятся... правильнее делать так
print join "
",@q;
Пример 2: не могу и предположить как вы выодете но попробую первести пример как нужно
my $str="";
for (@q)
{
s/</&lt;/;
$str.=$_;
}
print "<textarea>$str</textarea>";
<pre></pre>
-method => post),
textarea (-name => "comment",
-value => "текст нового раздела",
-rows => 28,
-cols => 80,
-wrap => "virtual"),
submit ( -name => "choice",
-value => "send"),
end_form();
если передали, то:
$e=param('comment');
open (RAZDEL, "> $razd_file")
or die "Can't open $razd_file";
print RAZDEL $e;
close RAZDEL;
#это записали в файл
print start_form(-action => url(),
-method => post),
@q,
textarea (-name => "text_razd4chang",
-value => '@q',
-rows => 15,
-cols => 80,
-wrap => "virtual"),
submit ( -name => "choice",
-value => "send"),
end_form();
#это считали в @q и попытали вывести как текст и как содержимое textarea
ты уверен что привел именно тот код который у тебя не правильно работает ?
-value => '@q',
не может вывести только первую строчку массива @q она просто выведет @q(всмыле 2 символа @ и q)
попробуй так
-value => (join "",@q),
действительно. там без кавычек, это я экспеирментировал. попробую твой вариант