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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Замещение функции, Как заместить функцию из Term::ReadLine 
:(
    Опции темы
ssdm
Дата 12.1.2011, 14:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Всем здравствуйте.
Есть модуль Term::Shell ,который использует Term::ReadLine::Zoid.
Есть некий класс A (написанный с использование Moose) , наследуемый  от Term::Shell , мне надо  переопределить (заместить) функцию readline() модуля Term::ReadLine::Zoid. 
Причем модуль Term::Shell также имеет функцию readline().
Подскажите как.
PM MAIL   Вверх
arto
Дата 12.1.2011, 15:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


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

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



sub Term::ReadLine::Zoid::readline { print "WOW!" }
порешать вопрос со strict.
PM MAIL ICQ   Вверх
ssdm
Дата 17.1.2011, 14:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Цитата(arto @ 12.1.2011,  15:07)
sub Term::ReadLine::Zoid::readline { print "WOW!" }

Попробовал.
Вроде не то. 

Это сообщение отредактировал(а) ssdm - 17.1.2011, 15:21
PM MAIL   Вверх
arto
Дата 17.1.2011, 14:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


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

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



у меня работает
PM MAIL ICQ   Вверх
ssdm
Дата 17.1.2011, 15:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Цитата(arto @ 17.1.2011,  14:50)
у меня работает

Очень странно.
Можете выложить код который у вас работает.
Вот часть моего : 
Код

package MyShell;

use version; our $VERSION = qv('v0.1.0');
use Moose ;
use MooseX::NonMoose;
use Module::Pluggable::Object;
use MooseX::Params::Validate;
use Exception::Class;
use Moose::Util qw/ apply_all_roles/;
use Term::ANSIColor qw/ :constants /;
use File::Spec;
use File::Path qw/ make_path /;
use YAML::Syck qw/ DumpFile LoadFile /;

use utf8;
use Encode;

extends 'Term::Shell';

BEGIN{
    $ENV{PERL_RL}='Zoid';
}

<some code here>

sub Term::ReadLine::Zoid::readline { print "WOW!" } # don't work

1



Это сообщение отредактировал(а) ssdm - 17.1.2011, 15:35
PM MAIL   Вверх
arto
Дата 17.1.2011, 16:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


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

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



# perl -MTerm::ReadLine::Zoid -e 'sub Term::ReadLine::Zoid::readline { print $_[1],": "; <STDIN> }; my $term = Term::ReadLine::Zoid->new (); while ( defined ($_ = $term->readline("huh"))) { print }'  
huh: Тест
Тест
huh: ^D
#
PM MAIL ICQ   Вверх
ssdm
Дата 17.1.2011, 16:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Цитата(arto @ 17.1.2011,  16:14)
# perl -MTerm::ReadLine::Zoid -e 'sub Term::ReadLine::Zoid::readline { print $_[1],": "; <STDIN> }; my $term = Term::ReadLine::Zoid->new (); while ( defined ($_ = $term->readline("huh"))) { print }'  
huh: Тест
Тест
huh: ^D
#

К сожалению это совсем не то, что мне нужно. Надо переопределить эту функцию именно в моем классе.  Причем именно так , как указано в первом посте.
То есть в моем классе заместить функции Term::Shell'а  не составляет труда. А вот функцию Term::ReadLine::Zoid - ни в какую.

Добавлено @ 16:36
Проблему решил.
надо было просто добавить use Term::ReadLine::Zoid. 
arto спасибо за помощь

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


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

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


 




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


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

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