Size: a a a

2021 February 06

AS

Anton Selin in Modern::Perl
Vadim Goncharov
man perlref /autovivification
Спасибо, разобрался.
Значит, обратиться к неопределенной переменной нельзя, а присвоить можно - Perl это понимает, для него это должное поведение.
https://perlbanjo.com/9b660013e4
источник

SZ

Sergey Zhmylove in Modern::Perl
Anton Selin
Спасибо, разобрался.
Значит, обратиться к неопределенной переменной нельзя, а присвоить можно - Perl это понимает, для него это должное поведение.
https://perlbanjo.com/9b660013e4
Понял, как это работает?
источник
2021 February 07

AS

Anton Selin in Modern::Perl
Sergey Zhmylove
Понял, как это работает?
Да. Много интересного открываю для себя... Чувствую себя таким далеким от программирования. Например, не понимал, почему в данном коде https://perlbanjo.com/abf08d8f53
ссылка на массив  @array одна и та же.. Немного понадобилось времени, чтобы перестроить своё привычное мышление при программировании на 1С и всё встало на свои места -)
источник

AS

Anton Selin in Modern::Perl
Особенно интересная тема - это приоритеты операторов (когда всё в одну строчку и на первых порах сложно понять, что в какой последовательности выполняется). Встретил для себя флаг -MO=Deparse,-p  - оч. помогает
источник

SZ

Sergey Zhmylove in Modern::Perl
Anton Selin
Да. Много интересного открываю для себя... Чувствую себя таким далеким от программирования. Например, не понимал, почему в данном коде https://perlbanjo.com/abf08d8f53
ссылка на массив  @array одна и та же.. Немного понадобилось времени, чтобы перестроить своё привычное мышление при программировании на 1С и всё встало на свои места -)
Ну тогда почему же @{undef} в одном случае работает, а в другом нет?
источник

SZ

Sergey Zhmylove in Modern::Perl
Anton Selin
Да. Много интересного открываю для себя... Чувствую себя таким далеким от программирования. Например, не понимал, почему в данном коде https://perlbanjo.com/abf08d8f53
ссылка на массив  @array одна и та же.. Немного понадобилось времени, чтобы перестроить своё привычное мышление при программировании на 1С и всё встало на свои места -)
@PerlBanjoBot
sub generate_array { ($_[0], $_[0], $_[0]) }
say [generate_array($_)] for 1..5;
источник

P

PerlBanjoBot in Modern::Perl
Sergey Zhmylove
@PerlBanjoBot
sub generate_array { ($_[0], $_[0], $_[0]) }
say [generate_array($_)] for 1..5;
ARRAY(0x55ea9ff79578)
ARRAY(0x55ea9ff796b0)
ARRAY(0x55ea9ff79620)
ARRAY(0x55ea9ff79608)
ARRAY(0x55ea9ff79560)
https://PerlBanjo.com/8a465bdbc9
источник

SZ

Sergey Zhmylove in Modern::Perl
А тут разные, хех
источник

SZ

Sergey Zhmylove in Modern::Perl
Black magic ✨
источник

AS

Anton Selin in Modern::Perl
Sergey Zhmylove
Ну тогда почему же @{undef} в одном случае работает, а в другом нет?
Не столь уверенно. Можно использовать в perl и обращение к undefined: для этого, в моем случае, необходимо убрать use strict и use v5.28.1 🤷‍♂️
источник

SZ

Sergey Zhmylove in Modern::Perl
Anton Selin
Не столь уверенно. Можно использовать в perl и обращение к undefined: для этого, в моем случае, необходимо убрать use strict и use v5.28.1 🤷‍♂️
Неа, иди дальше переосмысляй :))
источник

AS

Anton Selin in Modern::Perl
Sergey Zhmylove
А тут разные, хех
Тут, кстате, понятно, почему разные: анонимный массив создается.
источник

VG

Vadim Goncharov in Modern::Perl
Anton Selin
Особенно интересная тема - это приоритеты операторов (когда всё в одну строчку и на первых порах сложно понять, что в какой последовательности выполняется). Встретил для себя флаг -MO=Deparse,-p  - оч. помогает
man perlop прям с таблица приоритетов начинается
источник

AK

Andrey Konovalov in Modern::Perl
Anton Selin
Да. Много интересного открываю для себя... Чувствую себя таким далеким от программирования. Например, не понимал, почему в данном коде https://perlbanjo.com/abf08d8f53
ссылка на массив  @array одна и та же.. Немного понадобилось времени, чтобы перестроить своё привычное мышление при программировании на 1С и всё встало на свои места -)
Откликнись на вакансию Глобус :)
источник

SZ

Sergey Zhmylove in Modern::Perl
Вот тебе ещё пища для размышлений
источник

SZ

Sergey Zhmylove in Modern::Perl
Anton Selin
Не столь уверенно. Можно использовать в perl и обращение к undefined: для этого, в моем случае, необходимо убрать use strict и use v5.28.1 🤷‍♂️
@PerlBanjoBot
use Data::Dumper;
my $x;
print Dumper \$x;
eval { my @a = @{$x}; 1} or print "err 1: $@";
push @{$x}, 4..6;
print Dumper \$x;
eval { my @a = @{$x}; 1} or print "err 2: $@";
источник

P

PerlBanjoBot in Modern::Perl
Sergey Zhmylove
@PerlBanjoBot
use Data::Dumper;
my $x;
print Dumper \$x;
eval { my @a = @{$x}; 1} or print "err 1: $@";
push @{$x}, 4..6;
print Dumper \$x;
eval { my @a = @{$x}; 1} or print "err 2: $@";
$VAR1 = \undef;
err 1: Can't use an undefined value as an ARRAY reference at script.pl line 13.
$VAR1 = \[
           4,
           5,
           6
         ];
https://PerlBanjo.com/8cabcc473e
источник

SZ

Sergey Zhmylove in Modern::Perl
И наверняка он не будет ругаться тут:
источник

SZ

Sergey Zhmylove in Modern::Perl
@PerlBanjoBot
use Data::Dumper;
my $x;
print Dumper \$x;
eval { print for @{$x}; 1} or print "err 1: $@";
push @{$x}, 4..6;
print Dumper \$x;
eval { print for @{$x}; 1} or print "err 2: $@";
источник

P

PerlBanjoBot in Modern::Perl
Sergey Zhmylove
@PerlBanjoBot
use Data::Dumper;
my $x;
print Dumper \$x;
eval { print for @{$x}; 1} or print "err 1: $@";
push @{$x}, 4..6;
print Dumper \$x;
eval { print for @{$x}; 1} or print "err 2: $@";
$VAR1 = \undef;
$VAR1 = \[
           4,
           5,
           6
         ];
456
https://PerlBanjo.com/16fff2279d
источник