|
|
ru.perl- RU.PERL ---------------------------------------------------------------------- From : Konstantin Tokar 2:5020/400 14 Oct 2003 15:19:15 To : Mikhail Polykovsky Subject : Re: Снимите с ручника -------------------------------------------------------------------------------- Mikhail Polykovsky wrote: >>>>>>>"MP" == Mikhail Polykovsky <glader@company.utk.ru> writes: >>>>>> > > AM> MP> Я написал класс, создал экземпляр. При отсутствии use strict все > AM> MP> отлично работает. Если строки (2) и следующую за ней поменять > AM> MP> местами, тоже все работает. А вот в таком виде, как ниже, выдает > AM> MP> ошибку > > AM> AA> Hазови метод import по-другому. importFiles например. > AM> MP> А! А почему без use strict работает??? Вызывает то, что нужно > > AM> Hу это все равно что программу, которую выдаёт сообщение об ошибке, > AM> перенаправить в /dev/null, и говорить, что она "отлично работает". > > Меня удивило то, что без strict нужная функция таки вызывалась. Ты в упор не интересуешься ответами. У тебя ошибка в том, что import вызывается на один раз чаще, чем ты планировал, вот этот вызов (которого ты не хочешь замечать) и порождает ошибку. Вот чуть модифицированный твой текст, посмотри в каком порядке запускаются функции. ----------------------------------- #!perl -w use Mod; $m=new Mod; ----------------------------------- package Mod; #use strict; use Data::Dumper; sub new{ warn('new'); my $self = {}; bless $self; return $self; } sub import{ warn('import'); my $self = shift; my $files = shift; return $self->set_err("Hе указан список файлов для импорта". Dumper(@_)) unless $files;# (1) return Dumper($self, $files); } sub set_err{ warn('set_err'); my ($self, $msg) = @_; $self->{'_errstr'} = $msg;# (2) return ('='x70)."\n" . Dumper($self) .Dumper(caller()).("="x70); return undef; } 1; --- ifmail v.2.15dev5 * Origin: MTU-Intel ISP (2:5020/400) Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.perl/280558f20fb5.html, оценка из 5, голосов 10
|