|
ru.perl- RU.PERL ---------------------------------------------------------------------- From : Mikhail Polykovsky 2:5020/400 13 Oct 2003 12:18:07 To : All Subject : Снимите с ручника -------------------------------------------------------------------------------- Я написал класс, создал экземпляр. При отсутствии use strict все отлично работает. Если строки (2) и следующую за ней поменять местами, тоже все работает. А вот в таком виде, как ниже, выдает ошибку Can't use string ("Mod") as a HASH ref while "strict refs" in use at Mod.pm line 29. BEGIN failed--compilation aborted at 1.pl line 6. Почему?? Ведь если перед строкой (1) поставить return Dumper($self), он говорит, что $VAR1 = bless( {}, 'Mod' ); Вот модуль ================================================== package Mod; use Data::Dumper; sub new{ my $self = {}; bless $self; return $self; } sub import{ my $self = shift; my $files = shift; return $self->set_err("Hе указан список файлов для импорта". Dumper(@_)) unless $files; (1) return Dumper($self, $files); } sub set_err{ my ($self, $msg) = @_; $self->{'_errstr'} = $msg; (2) return ('='x70)."\n" . Dumper($self) .Dumper(caller()).("="x70); return undef; } 1; ================================================== Скрипт: ====================================================== use Data::Dumper; use Mod; my $imp = new Mod; print $imp->import(['123']); ====================================================== -- Михаил Полыковский http://copi.ru/27690/ Отправлено через сервер Форумы@mail.ru - http://talk.mail.ru --- ifmail v.2.15dev5 * Origin: UTC (2:5020/400) Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.perl/9096d79c8e66.html, оценка из 5, голосов 10
|