Передача блока текста с веб-страницы в Perl-скрипт, а затем обратно в Интернет - PullRequest
0 голосов
/ 02 апреля 2011

Я пытаюсь сделать следующее.

Возьмите блок текста, который пользователь вводит в TEXTAREA FORM с веб-сайта, и передайте его сценарию perl / cgi, который добавляет номер строки перед каждой строкой.Так, например:

diet coke
potato chips
gelato

станет

1 diet coke
2 potato chips
3 gelato

Я знаю, как передать одно значение или набор значений в скрипт Perl, но когда я пытаюсь сделать foreach(@array), чтобы добавить номер строки, это не работает.Хотите знать, как это сделать.

Мой HTML-файл

<HTML>
<BODY>

<FORM ACTION="/cgi-bin/splitfoods.pl">
  <P>What did you eat today? <BR><TEXTAREA NAME="value" ID="value" style="width:900px;height\
:700px;background-color:#FFF8DC;font-size:20px">
    </TEXTAREA>

<P><INPUT TYPE="SUBMIT" VALUE="Submit">
</FORM>

</BODY>
</HTML>

, а файл cgi (от matthewh)

#!/usr/bin/perl

use CGI;
use CGI qw(:standard);


$query = new CGI;

@foods = split('\n',$query->param("value"));


# -- HTML STUFF --
print header;
print start_html;
for($i=1; $i<=@foods; $i++) {
    print "$i @foods[$i-1]";
    print "<br>";
}
print end_html;

запрос выглядит как

cgi-bin/splitfoods.pl?value=diet+coke%0D%0Apotato+chips%0D%0Agelato

Спасибо

Ответы [ 2 ]

2 голосов
/ 02 апреля 2011

Это немного чище и с меньшей вероятностью разбит на крайние случаи. Кроме того, нумерация - это HTML, что более естественно для веба. Вы действительно должны прочитать весь документ для CGI и всегда начинать код с предупреждений и строго по.

use strict;
use warnings;
no warnings "uninitialized";
use CGI ":standard";

# Scalar/array context matters with param()!
my $food = param("value");
my @foods = split /\n/, $food;

print
    header(),
    start_html(),
    ol(li( \@foods )),
    end_html();
2 голосов
/ 02 апреля 2011
@foods = split('\n',$query->param('food'));

for($i=1; $i<=@foods; $i++) {

   print "$i @foods[$i-1]\n";

}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...