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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Что означают сообщения об ошибках? по perl -w support.pl 
V
    Опции темы
igorold
Дата 20.3.2006, 16:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 557
Регистрация: 22.12.2005
Где: Россия->Урал-& gt;Миасс

Репутация: 3
Всего: 17



Запустил проверку скрипта :
perl -w support.pl
и вывелось куча строк, где посмотреть, что за ошибки?
последняя строка повторяется много раз ....
просто скрипт тормозить начал, я подумал - может из-за этого ...
Код

[Mon Mar 20 18:10:14 2006] support.pl: Unquoted string "dfd" may clash with future reserved word at support.pl line 57.
[Mon Mar 20 18:10:15 2006] support.pl: Using a hash as a reference is deprecated at support.pl line 7141.
[Mon Mar 20 18:10:15 2006] support.pl: Using a hash as a reference is deprecated at support.pl line 7145.
[Mon Mar 20 18:10:15 2006] support.pl: Using a hash as a reference is deprecated at support.pl line 7210.
[Mon Mar 20 18:10:15 2006] support.pl: Using a hash as a reference is deprecated at support.pl line 7214.
[Mon Mar 20 18:10:16 2006] support.pl: Use of uninitialized value in numeric gt (>) at support.pl line 7306.
[Mon Mar 20 18:10:16 2006] support.pl: Use of uninitialized value in index at support.pl line 7577.
[Mon Mar 20 18:10:16 2006] support.pl: Use of uninitialized value in index at support.pl line 7577.
[Mon Mar 20 18:10:16 2006] support.pl: Use of uninitialized value in index at support.pl line 7577.
............ предыдущая строка повторяется много раз   ..........................................................
[Mon Mar 20 18:10:16 2006] support.pl: Use of uninitialized value in index at support.pl line 7577.
[Mon Mar 20 18:10:16 2006] support.pl: Use of uninitialized value in index at support.pl line 7577.
[Mon Mar 20 18:10:17 2006] support.pl: Use of uninitialized value in string eq at support.pl line 77.

например 7577 строка такая:
Код

sub ReplaceChar
  #Аргументы: строка для замены, строка на которую менять, строка в которой менять
  #Результат: строка с замененным символом
{
    my $Test = index $_[2], $_[0];  # ------------  это строка 7577 ---------
    while ($Test ne -1)
    {
        substr($_[2], $Test, length($_[0])) = $_[1];
        $Test = index $_[2], $_[0];
    }
    return $_[2];
}



Это сообщение отредактировал(а) igorold - 20.3.2006, 16:26


--------------------
... у семи нянек 14 сисек ...  
Putin here, Putin there, Putin almost everywhere!
PM MAIL   Вверх
sharq
Дата 20.3.2006, 16:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Perl Liker
**


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

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



igorold,
Цитата(igorold @ 20.3.2006, 17:18 Найти цитируемый пост)
что за ошибки?

Это не ошибки, а warning!


Цитата(igorold @ 20.3.2006, 17:18 Найти цитируемый пост)
my $Test = index $_[2], $_[0];  # ------------  это строка 7577 ---------

Просто переменные $_[0] или $_[2] - не определены.
Можешь поставить проверку на неопределенность или инициализировать их в случае undef.

smile


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


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 2543
Регистрация: 10.2.2006
Где: Россия :)

Репутация: 37
Всего: 84



проверка к примеру if defined(переменная)


--------------------
PM   Вверх
igorold
Дата 21.3.2006, 07:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 557
Регистрация: 22.12.2005
Где: Россия->Урал-& gt;Миасс

Репутация: 3
Всего: 17



Цитата(sharq @ 20.3.2006, 16:49)
Можешь поставить проверку на неопределенность или инициализировать их в случае undef.

smile

а можно это в виде примера продемонстрировать? .... smile


--------------------
... у семи нянек 14 сисек ...  
Putin here, Putin there, Putin almost everywhere!
PM MAIL   Вверх
nitr
Дата 21.3.2006, 10:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 2543
Регистрация: 10.2.2006
Где: Россия :)

Репутация: 37
Всего: 84



igorold, сказал же поставь условие if(defined($1)) {} к примеру!


--------------------
PM   Вверх
sharq
Дата 21.3.2006, 12:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Perl Liker
**


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

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



igorold,
Цитата(igorold @ 21.3.2006, 08:04 Найти цитируемый пост)
а можно это в виде примера продемонстрировать?

smile

В начало функции поставь
Код

{
  return unless $_[2] && $_[1];
  ...
}


Кстати, ты на perl программируешь или на Cи??? Что за стиль?
perldoc perlstyle

И для твоей задачи будет удобней регулярные выражения! (в perl конечно smile )

smile


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


Опытный
**


Профиль
Группа: Участник
Сообщений: 557
Регистрация: 22.12.2005
Где: Россия->Урал-& gt;Миасс

Репутация: 3
Всего: 17



Цитата(sharq @ 21.3.2006, 12:12)
igorold,
Цитата(igorold @  21.3.2006,  08:04 Найти цитируемый пост)
а можно это в виде примера продемонстрировать?

smile

В начало функции поставь
Код

{
  return unless $_[2] && $_[1];
  ...
}


Кстати, ты на perl программируешь или на Cи??? Что за стиль?
perldoc perlstyle

И для твоей задачи будет удобней регулярные выражения! (в perl конечно smile )

smile


просто я правлю чужой скрипт ... парень, который его делал, уволился ...
а раньше я с perl и HTML не сталкивался ... так что изучаю читая теорию, ваш форум, и разбираясь в скрипте ...

кстати, я тоже уже думал, что там подойдет может быть рег.выражение ....


--------------------
... у семи нянек 14 сисек ...  
Putin here, Putin there, Putin almost everywhere!
PM MAIL   Вверх
nitr
Дата 21.3.2006, 13:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 2543
Регистрация: 10.2.2006
Где: Россия :)

Репутация: 37
Всего: 84



$str =~ s{$old_str}{$new_str}smg; и не надо функций ;)


--------------------
PM   Вверх
igorold
Дата 21.3.2006, 13:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 557
Регистрация: 22.12.2005
Где: Россия->Урал-& gt;Миасс

Репутация: 3
Всего: 17



Код

sub ReplaceChar
  #Аргументы: строка для замены, строка на которую менять, строка в которой менять
  #Результат: строка с замененным символом
{
    my $Test = index $_[2], $_[0];  # ------------  это строка 7577 ---------
    while ($Test ne -1)
    {
        substr($_[2], $Test, length($_[0])) = $_[1];
        $Test = index $_[2], $_[0];
    }
    return $_[2];
}

а если использовать рег выражение, то так можно написать? :
Код

sub ReplaceChar
  #Аргументы: строка для замены, строка на которую менять, строка в которой менять
  #Результат: строка с замененным символом
{
   return unless $_[2] && $_[1]; 
   $_[2] =~ s/$_[0]/$_[1]/g;
    return $_[2];
}

..... но тогда может проще без подпрограммы, сразу рег.выражение писать .... ?? smile
Добавлено @ 13:08
А выражение
$str =~ s{$old_str}{$new_str}smg;
и
$str =~ s/$old_str/$new_str/smg;

одинаковы?


--------------------
... у семи нянек 14 сисек ...  
Putin here, Putin there, Putin almost everywhere!
PM MAIL   Вверх
nitr
Дата 21.3.2006, 13:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 2543
Регистрация: 10.2.2006
Где: Россия :)

Репутация: 37
Всего: 84



одинаковы smile Вообще откажись от sub ReplaceChar, замени на рег.выр
быстрее работать будет!

Это сообщение отредактировал(а) nitr - 21.3.2006, 13:17


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


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

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


 




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


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

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