Forum Webscript.Ru

Программирование => Perl => Тема начата: Yuraz от 23 Апреля 2002, 16:58:05

Название: Что в переменной, если я туда ничего не записываю
Отправлено: Yuraz от 23 Апреля 2002, 16:58:05
$input{$name} = $value;

...............
$sort=$input{sort};

...............

if ($sort==\'\') # 2 апострофа
{
$sort="postavshik_id";
}

Народ, помогите, что же забивается в переменную $sort если я туда ничего не посылаю(по умолчанию не посылается, а так посылаю эту переменную методом GET для случаев сортировки), сравнение которое я делаю не срабатывает. Мне надо, если $sort пустой (а как это узнать) то подставляется моё значение. Спасибо.

Добавлю, что просто запрос не выполняется если $sort пустая, а заменить её я не могу.

$sqlstatement = "SELECT * FROM $tablename ORDER BY $sort";
Название: Что в переменной, если я туда ничего не записываю
Отправлено: NeoNox от 23 Апреля 2002, 17:18:53
Цитировать
Мне надо, если $sort пустой (а как это узнать) то подставляется моё значение.

if ($sort eq \'\') # 2 апострофа
{
$sort="postavshik_id";
}
Цитировать
Народ, помогите, что же забивается в переменную $sort если я туда ничего не посылаю

$sort будет неопределена (undef)

А вообще:
perldoc perldata
Название: Что в переменной, если я туда ничего не записываю
Отправлено: Yuraz от 23 Апреля 2002, 17:25:13
NeoNox спасибо.
Название: Что в переменной, если я туда ничего не записываю
Отправлено: ESE от 23 Апреля 2002, 19:22:42
При отладке скрипта можно пользоваться print-ом
и смотреть какие значения принимаються на разных этапах.
Название: Что в переменной, если я туда ничего не записываю
Отправлено: YA от 24 Апреля 2002, 17:15:17
Цитировать
if ($sort eq \'\') # 2 апострофа
{
$sort="postavshik_id";
}


Проще так:
if (!$sort\')
{
$sort="postavshik_id";
}

А еще проще вот так:
$sort||="postavshik_id";
Название: Что в переменной, если я туда ничего не записываю
Отправлено: Green Kakadu от 24 Апреля 2002, 17:34:14
Цитировать
Проще так:
if (!$sort\')
{
$sort="postavshik_id";
}

:) тогде еще и так:
unless($sort){....}
Название: Что в переменной, если я туда ничего не записываю
Отправлено: YA от 24 Апреля 2002, 17:49:52
Green Kakadu
А почему
Цитировать
unless($sort){....}

проще или быстрее чем
Цитировать
$sort||=...;

?
Название: Что в переменной, если я туда ничего не записываю
Отправлено: Green Kakadu от 25 Апреля 2002, 01:36:28
Цитировать
А почему ...
проще или быстрее чем

:) гы, а я и не говорил что проще и быстрее - просто раз уж писать if(!что-то), то  unless выглядит естественее, только и всего.
А ведь можно и так:

$sort= $input{sort}? $input{sort}: \'postavshik_id\';

:) раз мы уж начали перебирать варианты.
Название: Что в переменной, если я туда ничего не записываю
Отправлено: YA от 25 Апреля 2002, 16:59:49
Цитировать
unless выглядит естественее

:) ну это, скорее, дело вкуса. Впрочем, не буду спорить с авторитетом :)
Цитировать
раз мы уж начали перебирать варианты

Да уж, в перле всегда есть из чего выбрать. И это здорово ;)