Просмотр сообщений

В этом разделе можно просмотреть все сообщения, сделанные этим пользователем.


Сообщения - washington

Страницы: [1]
1
Perl / Наследования в Perl
« : 18 Апреля 2005, 12:35:17 »
Здравствуйте.
Благодарю за интерес к моей теме.
Что-то не выходит.
Если вызывать сразу модуль  person.pm из start.pl – то всё работает, а как только начинаю наследоваться в employee.pm говорит  Compilation failed in require at start.pl line 5.
А когда напрямую запускаю  employee.pm то там говорит Global symbol "@ISA" requires explicit package name at employee.pm line 6.

Вот код start.pl:
#!/usr/bin/perl -w
use strict;
use lib qw( info );
use info::employee;

info\\ employee.pm
package employee;
use strict;

use lib qw(.);
use person;
@ISA=("person");

1;

info\\ person.pm
package person;
use strict;
sub new
{
    my $class=shift;
    my $self={};
    return bless($self, $class);
}
sub name
{
    my $self=shift;
    $self->{NAME}=shift if @_;
    return $self->{NAME};
}
sub age
{
    my $self=shift;
    $self->{AGE}=shift if @_;
    return $self->{AGE};
}
1;

Может быть у вас есть какой ни будь рабочий пример -  может быть я что-то не дописываю где-то. washik@inbox.ru

2
Perl / Наследования в Perl
« : 18 Апреля 2005, 00:12:15 »
Здравствуйте.
У меня токая проблемка.
Имеется два модуля.
person.pm и employee.pm – последний должен унаследовать все свойство и методы первого. Оба они лежат в папке info.
----------------------------------------------------------
package person;
sub new
{
    my $class=shift;
    my $self={};
    return bless($self, $class);
}
sub name
{
    my $self=shift;
    $self->{NAME}=shift if @_;
    return $self->{NAME};
}
sub age
{
    my $self=shift;
    $self->{AGE}=shift if @_;
    return $self->{AGE};
}
1;
----------------------------------------------------------
package employee;
use person;
@ISA=("person");
1;
----------------------------------------------------------
#!/usr/bin/perl -w

use CGI qw(:all);
use CGI::Carp qw(fatalsToBrowser);

use info::employee;    - после этой строчки
появляется ошибка
[Sun Apr 17 22:16:52 2005] DzTemp.pl: Compilation failed in require at start.pl line 6.
[Sun Apr 17 22:17:17 2005] DzTemp.pl: BEGIN failed--compilation aborted at start.pl line 6.

Мучаюсь уже второй день. Может быть кто подскажет как решить эту проблему.
Спасибо.

Страницы: [1]