Модераторы: korob2001, ginnie
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Perl вешается при включенном -w 
:(
    Опции темы
rcdimon
Дата 13.5.2006, 19:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 766
Регистрация: 12.7.2004
Где: Москва

Репутация: 1
Всего: 2



Имеется такой заголовок

#!/usr/perl58/bin/perl
use strict;
use CGI qw(:standard);
use DBI;
use MIME::Base64;
use lib qw('/home/test2.ru/cgi-bin/');
use Myconfig;


При включенном -w прога начинает работать как-то нестабильно. Добавишь пару строк и она виснет.
Виснет например при

$a = $b;

Если $b пустое... И т.д. Не могу понять в чем дело... Может кто ни будь сталкивался с этим? 
PM MAIL ICQ   Вверх
sharq
Дата 14.5.2006, 01:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Perl Liker
**


Профиль
Группа: Участник
Сообщений: 841
Регистрация: 13.12.2004
Где: Ростов-на-Дону

Репутация: 23
Всего: 28



rcdimon, ужас, вот это страсти  smile 
Проверь свой скрипт так:
Цитата

perl -wc script.pl

Что пишет?
Добейся того, чтобы ни одного ворнинга не осталось.

 smile  


--------------------
[color=gray]There's More Than One Way To Do It[/color]
PM MAIL WWW ICQ Skype   Вверх
rcdimon
Дата 14.5.2006, 06:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 766
Регистрация: 12.7.2004
Где: Москва

Репутация: 1
Всего: 2



Цитата

    my ($string, $type)    = @_;

    return undef unless $string;

    if ($type eq 'digit'){


Пишет что в if я использую необъявленную переменную.... Не понимаю куда уж объявистее

Добавлено @ 06:39 
а если с -wc  пишет Syntax OK и все.... 
PM MAIL ICQ   Вверх
sharq
Дата 14.5.2006, 11:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Perl Liker
**


Профиль
Группа: Участник
Сообщений: 841
Регистрация: 13.12.2004
Где: Ростов-на-Дону

Репутация: 23
Всего: 28



rcdimon, 
Цитата(rcdimon @  14.5.2006,  07:38 Найти цитируемый пост)
Пишет что в if я использую необъявленную переменную....

ну правильно пишет.

Вот так надо:
Код

if (!$type) {
   ...
} elsif ($type eq 'digit') {
  ...
} else {
  ...
}


или так
Код

if ($type && $type eq 'digit') {
  ...
}


или так
Код

my $string = shift || return;
my $type = shift || 'undef'; # или какое-нить значение по умолчанию

# теперь $type всегда определен
if ($type eq 'digit') {
  ...
}


 smile  


--------------------
[color=gray]There's More Than One Way To Do It[/color]
PM MAIL WWW ICQ Skype   Вверх
rcdimon
Дата 15.5.2006, 16:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 766
Регистрация: 12.7.2004
Где: Москва

Репутация: 1
Всего: 2



Ну это уже даже нелогично 
PM MAIL ICQ   Вверх
korob2001
Дата 16.5.2006, 16:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 2871
Регистрация: 29.12.2002

Репутация: 31
Всего: 61



Цитата(rcdimon @  15.5.2006,  13:29 Найти цитируемый пост)
Ну это уже даже нелогично

Почему не логично? Присвой переменно значение поумолчанию, например пустую строку:
Код
my $var = shift || "";

Теперь даже если подпрограмма не получит значение переменной, переменная $var будет определена. Но так как от пустой строки толку мало, то можно сразу же поставить такой условный выход их подпрограммы:
Код
sub check {
    my $var = shift || "";
    return "Error" unless $var;
}

Или что-то в таком духе:
Код
sub check {
    my $var = shift || die "You must call subrutine 'check' whith one argument\n";
    print $var;
}

check();
 


--------------------
"Время проходит", - привыкли говорить вы по неверному пониманию. 
"Время стоит - проходите вы".
PM MAIL WWW ICQ MSN   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Perl"
korob2001
sharq
  • В этом разделе обсуждаются общие вопросы по языку Perl
  • Если ваш вопрос относится к системному программированию, задавайте его здесь
  • Если ваш вопрос относится к CGI программированию, задавайте его здесь
  • Интерпретатор Perl можно скачать здесь ActiveState, O'REILLY, The source for Perl
  • Справочное руководство "Установка perl-модулей", можно скачать здесь


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, korob2001, sharq.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Perl: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0455 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.