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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Undefined subroutine &main:: Выдается ошибка при выполнении скрипта 
:(
    Опции темы
X_ForumLogin
Дата 11.2.2008, 15:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 5
Регистрация: 11.2.2008

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



Привеет : - )
Простенький скрипт, который у людей работает:
Код

#!/usr/bin/perl

use strict;

my $mqueue_directory = "/var/spool/mqueue";
my %occurrences;

use File::Find;
# Recursively find all files and directories in $mqueue_directory
find(&wanted, $mqueue_directory);

sub wanted {
# Is this a qf* file?
if ( /^qfw{14}/ ) {
open (QF_FILE, $_);
while(<QF_FILE>) {
# Lines beginning with R contain an envelope recipient
if ( /^R.*:<.*@(.*)>$/ ) {
my $domain = lc($1);
# Add 1 to the %occurrences hash
$occurrences{$domain}++;
}
}
}
}

# Subroutine to sort hash by ascending value
sub hashValueAscendingNum {
$occurrences{$a} <=> $occurrences{$b};
}

# Print sorted results
foreach my $key (sort hashValueAscendingNum (keys(%occurrences))) {
print "$occurrences{$key} $keyn";
}



Сообщение об ошибке: Undefined subroutine &main:: called at /usr/libdata/perl/5.00503/File/Find.pm line 103.

Чую, с модулями перла что-то не так, но что?

PM MAIL   Вверх
Unrealm
Дата 11.2.2008, 16:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 25
Регистрация: 19.7.2007

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



Попробуй обновить модуль или переустановить его. У меня была подобная проблема, правда с другим модулем.
PM MAIL   Вверх
amg
Дата 11.2.2008, 16:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1145
Регистрация: 3.8.2006
Где: Новосибирск

Репутация: 38
Всего: 50



Может версия перл старовата? Сейчас в ходу 5.8, уже появился 5.10, а тут 5.0.
Тем не менее, может, заработает, если исправите в строке 10 &wanted на \&wanted и в строке 34 $keyn" на $key\n" .
PM MAIL   Вверх
X_ForumLogin
Дата 11.2.2008, 16:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 5
Регистрация: 11.2.2008

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



А какой модуль-то обновлять надо? СПАН запустил, там их столько, непонятно, какой именно?

amq, заменил, ошибка исчезла, но ничего не происходит. Это не могло привести к прерыванию скрипта?
PM MAIL   Вверх
ginnie
Дата 11.2.2008, 16:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Комодератор
Сообщений: 1287
Регистрация: 6.1.2008
Где: Москва

Репутация: 38
Всего: 49



X_ForumLogin, скорее всего надо

Код

if ( /^qfw{14}/ ) {


заменить на

Код

if ( /^qf\w{14}/ ) {



--------------------
Написать код, понятный компьютеру, может каждый, но только хорошие программисты пишут код, понятный людям. (Мартин Фаулер. Рефакторинг)
PM MAIL Skype Jabber   Вверх
amg
Дата 11.2.2008, 16:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1145
Регистрация: 3.8.2006
Где: Новосибирск

Репутация: 38
Всего: 50



ginnie, скорее всего, да. Похоже, в скрипте куда то пропали все бэкслеши. Поэтому строку if ( /^R.*:<.*@(.*)>$/ ) тоже надо внимательно посмотреть на сей счет. Хотя, вроде, там все в порядке (стандартной переменной @(, вроде, нет?)
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Perl"
korob2001
sharq
  • В этом разделе обсуждаются общие вопросы по языку Perl
  • Если ваш вопрос относится к системному программированию, задавайте его здесь
  • Если ваш вопрос относится к CGI программированию, задавайте его здесь
  • Интерпретатор Perl можно скачать здесь ActiveState, O'REILLY, The source for Perl
  • Справочное руководство "Установка perl-модулей", можно скачать здесь


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

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


 




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


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

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