Size: a a a

2021 April 08

AK

Andrey Konovalov in Modern::Perl
https://perldoc.perl.org/UNIVERSAL
Класс - предок всех других классов.
источник

W

Warstone in Modern::Perl
Не получилось?..
источник

АН

Андрей Нагорный... in Modern::Perl
Сорри что забыл ответить, отвлекли на работе))

Вопрос был в том, как использовать метод класса в другом файле
источник

W

Warstone in Modern::Perl
Э-э-э... Смешались в кучу кони люди...
источник

АН

Андрей Нагорный... in Modern::Perl
И связан ли package Core и Core::Object ?
источник

SZ

Sergey Zhmylove in Modern::Perl
Нет
источник

АН

Андрей Нагорный... in Modern::Perl
В одном файле, у меня с этим проблема возникала, которую я решил
источник

SZ

Sergey Zhmylove in Modern::Perl
Если тебе надо наследование, то use parent
источник

W

Warstone in Modern::Perl
Нет. Более того package - это такой забавный способ не писать каждый раз sub My::Cool::Package::method { ... }
источник

W

Warstone in Modern::Perl
То есть вы можете определить любой метод любого пакета в любом месте кода.
источник

W

Warstone in Modern::Perl
Но не надо так делать, если вы не понимаете что вы делаете и зачем.
источник

АН

Андрей Нагорный... in Modern::Perl
Манипуляция с наймспейсом ? Если нет, то я не понял
источник

W

Warstone in Modern::Perl
Ну вы можете написать:
package One;

sub Two::qwe { print "qwe\n" }

pakcage main;

my $obj = bless {}, 'Two';
$obj->qwe;

И это сработает.
источник

W

Warstone in Modern::Perl
package XXX в первом приближении говорит, что в случае если у всех дальнейших объявлений нету стеша (правильно говорить не пакет, а стеш, но пакет - тоже пойдет), то надо автоматом добавить его к объявлению. Не более.
Да и bless в первом приближении не создает объект, а просто помещает ссылку на стеш в специальное место внутри переменной.
И вообще Перл позваляет вам делать любую дичь. Для накоторых классов дичи у него даже хелперы есть. Но это не значит что так надо делать ))
источник

SZ

Sergey Zhmylove in Modern::Perl
@PerlBanjoBot
package p1;
sub p2::func { warn -qwe }
$p3::var = bless {}, "p2";
package p3;
$var->func();
источник

P

PerlBanjoBot in Modern::Perl
Variable "$var" is not imported at script.pl line 14.
Global symbol "$var" requires explicit package name (did you forget to declare "my $var"?) at script.pl line 14.
Execution of script.pl aborted due to compilation errors.
https://PerlBanjo.com/b7495dd99d
источник

SZ

Sergey Zhmylove in Modern::Perl
Эх, таки strict
источник

W

Warstone in Modern::Perl
Ессно.
источник

SZ

Sergey Zhmylove in Modern::Perl
@PerlBanjoBot
package p1;
sub p2::func { warn -qwe }
$p3::var = bless {}, "p2";
package p3;
our $var;
$var->func();
источник

P

PerlBanjoBot in Modern::Perl
источник