Я хочу проверить, начинается ли число с 4 или 5 в CGI - PullRequest
0 голосов
/ 15 декабря 2010

Мне нужно написать какой-нибудь скрипт на CGI, который для меня новый.Я пытаюсь сделать, если еще с номерами условий, начинающимися с 5 или 6. Так что один код, если число начинается с 5, и другой, если номер начинается с 6.

Ответы [ 2 ]

1 голос
/ 15 декабря 2010
use 5.013;
use warnings;
use Scalar::Util qw( looks_like_number );
use CGI;

my $param = CGI->new()->param('some_example');

given (substr $param, 0, 1) {
    when (! looks_like_number($_) ) { say 'Not a number'   }
    when (5)                        { say 'starts with 5'  }
    when (6)                        { say 'starts with 6'  }
}

В качестве альтернативы, вместо использования substr для получения первой буквы, поместите $ param и замените (5) на свое регулярное выражение.

1 голос
/ 15 декабря 2010

Не думаю, что вы понимаете, что такое CGI.CGI - это просто набор переменных среды, которые устанавливаются веб-сервером, и ваша программа выполняется с ними.Вывод программы становится веб-страницей.

Так что, если вы хотите написать CGI-скрипт на Python, PHP, C, Assembly, Whitespace ... до тех пор, пока он может быть вызван и использовать переменные среды, этохорошо.

Так что это действительно языковой вопрос.Какой язык вы используете?

РЕДАКТИРОВАТЬ Вы указали Perl в комментарии к этому ответу.Я предлагаю вам отредактировать вопрос.

Какой у вас номер ввода?Скрипт Perl будет запускаться с полной загрузкой дополнительных переменных среды.Двумя наиболее важными являются QUERY_STRING и REQUEST_METHOD.CGI состоит из спецификации этих переменных среды, поэтому для написания CGI можно использовать любой язык.

Рассмотрим perl_cgi.cgi?something=else.Бит, следующий за ?, равен QUERY_STRING.Вы можете указать это непосредственно как часть привязки:

<a href="perl_cgi.cgi?something=else">Run with something equals else</a>

или как часть формы (одна из GET или POST, по умолчанию GET):

<form action="perl_cgi.cgi" method="[GET or POST]">
    <input type="text" name="something" value="else"/>
    <input type="submit" value="Submit!"/>
</form>

Это будет выполненоваша программа с той же строкой запроса, что и выше (или другим параметром, если текстовое поле изменено), но REQUEST_METHOD будет GET или POST в зависимости.

Итак, давайте напишем CGI-скрипт Perl для печати первого числа строки, которую мы получаем (мы только передали строки):

use CGI;
$cgi=new CGI;
$x=$cgi->param('x');
$firstnum=substr($x, 0, 1);
print "Content-type: text/html\n\n";

print <<"EOF";
<html>
<head>
<title>My sample HTML page</title>
</head>
<body>
<p>The first number of $x is $firstnum</p>
</body>
</html>
EOF

Это предполагает, что эта программа запускается как [имя_программы]? x = [некоторая строка].Это зависит от вас, чтобы убедиться, что это так.

Это должно дать вам достаточно.Вы можете проверить firstnum, чтобы увидеть, 5 или 6, а затем делать разные вещи в зависимости.

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