Logo Море(!) аналитической информации!
IT-консалтинг Software Engineering Программирование СУБД Безопасность Internet Сети Операционные системы Hardware
Архив форумов ЦИТФорума
Море(!) вопросов - Море(!) ответов
 
 FAQFAQ   ПоискПоиск   ПользователиПользователи   ГруппыГруппы   РегистрацияРегистрация 
 ПрофильПрофиль   Войти и проверить личные сообщенияВойти и проверить личные сообщения   ВходВход 
Как правильно задавать вопросы

Толи я чего-то не понимаю, толи perl глючит. Скорее второе.

 
Перейти:  
Этот форум закрыт, вы не можете писать новые сообщения и редактировать старые.   Эта тема закрыта, вы не можете писать ответы и редактировать сообщения.    Список форумов Архив форумов ЦИТФорума -> Программирование
Предыдущая тема :: Следующая тема  
Автор Сообщение
Azazar



Зарегистрирован: 15.02.2004
Сообщения: 3

СообщениеДобавлено: Вс Фев 15 2004 17:48    Заголовок сообщения: Толи я чего-то не понимаю, толи perl глючит. Скорее второе. Ответить с цитатой

Вот кусок кода:

Код:
#!/usr/bin/perl

use strict;

sub testsub1 ($) {
    my $tv = shift();

    sub testsub2 () { return $tv; };

    return testsub2();
};

for (my $i = 2; $i < 15; $i++) {
    print "value: " . testsub1($i) . "; expected: $i\n";
};


Вот это результаты его работы:

Код:
value: 2; expected: 2
value: 2; expected: 3
value: 2; expected: 4
value: 2; expected: 5
value: 2; expected: 6
value: 2; expected: 7
value: 2; expected: 8
value: 2; expected: 9
value: 2; expected: 10
value: 2; expected: 11
value: 2; expected: 12
value: 2; expected: 13
value: 2; expected: 14


В чём дело - и так ясно, а вот как это красиво лечить - не знаю?
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
совсем незнакомый



Зарегистрирован: 24.12.2003
Сообщения: 183
Откуда: Israel

СообщениеДобавлено: Пн Фев 16 2004 13:57    Заголовок сообщения: Ответить с цитатой

спросил знакомого "перловщика".
он сказал, что плох тут вы, уважаемый.
по его словам, определение глобальной функции внутри функции - неправилно.
а надо определять её локально:
Код:

sub testsub1 ($) {
        my $tv = shift;
        my $testsub2 = sub { return $tv;};
        return $testsub2->();
}


Удачи.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Показать сообщения:   
Этот форум закрыт, вы не можете писать новые сообщения и редактировать старые.   Эта тема закрыта, вы не можете писать ответы и редактировать сообщения.    Список форумов Архив форумов ЦИТФорума -> Программирование Часовой пояс: GMT + 3
Страница 1 из 1

 
Перейти:  
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах


Powered by phpBB © 2001, 2002 phpBB Group
Русская поддержка phpBB

 

IT-консалтинг Software Engineering Программирование СУБД Безопасность Internet Сети Операционные системы Hardware

Информация для рекламодателей PR-акции, размещение рекламы — adv@citforum.ru,
тел. +7 495 6608306, ICQ 232284597
Пресс-релизы — pr@citforum.ru
Послать комментарий
Информация для авторов
This Web server launched on February 24, 1997
Copyright © 1997-2000 CIT, © 2001-2006 CIT Forum
Внимание! Любой из материалов, опубликованных на этом сервере, не может быть воспроизведен в какой бы то ни было форме и какими бы то ни было средствами без письменного разрешения владельцев авторских прав. Подробнее...