500 внутренняя ошибка сервера perl / База данных - PullRequest
2 голосов
/ 17 февраля 2012

Я обращаюсь к базе данных из моего Perl-скрипта и пытаюсь вставить оператор if, чтобы иметь возможность запрашивать разные вещи в зависимости от того, что выбрал пользователь.

Он отлично работает без оператора if, но когда я добавляю оператор if, он дает мне ошибку 500.

Итак, этот работает:

my $query = "SELECT * FROM cars";

А этот нет:

if( $model eq "All"  ){

    my $query = "SELECT * FROM cars";

}

1 Ответ

4 голосов
/ 17 февраля 2012

Переменные, объявленные с my, имеют область действия ближайшего окружающего блока.Что в вашем случае означает, что $query не объявлено вне вашего оператора if.

Решение состоит в том, чтобы поместить объявление в нужную область, например, перед оператором if.

With use strict в действии, что подразумевается в сообщенной вами ошибке Global symbol "$query" requires explicit package name, это приведет к ошибке 500.

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