b
-> % perl -E 'my $v = 5; my $s = sub { $v }; $v = 6; print $s->(), "\n"'
6
-> % perl -E 'my $v = 5; my $s = sub { return $v }; $v = 6; print $s->(), "\n"'
6
Size: a a a
b
-> % perl -E 'my $v = 5; my $s = sub { $v }; $v = 6; print $s->(), "\n"'
6
-> % perl -E 'my $v = 5; my $s = sub { return $v }; $v = 6; print $s->(), "\n"'
6
b
b
sub x { return unless defined $_[0]; $_[0] * 4 } say for map x($_), 2, undef, 4, 5;
b
$v
будет %h
то поведение такое жеAP
my %h; for my $z (4..6) { %h = (%h, map { $z . $_ => sub {print $_[0], $_, $z}} (1..3))}
print $_, $h{$_}->($_), "\n" for keys %h;
b
b
my %h;
for my $z (2..2) {
%h = (%h, map {
$z . $_ => sub {
print "(a:", $_[0], ", b: ", $_, ", z: ", $z, ")"
}
} (1..1))
}
print "k = ", $_, ", val = ", $h{$_}->($_), "\n" for keys %h;
(a:21, b: 21, z: 2)k = 21, val = 1
@_
отдельная песня, т.к. это спец. переменная к сути вопроса не относитсяAP
sub () { $val}
— псевдоописание константы, а если добавить директиву ретурн, то это уже функция. но времени вчитаться пока нет.AP
Traditionally, Perl has captured the value of the variable
at that point and turned the subroutine into a constant
eligible for inlining.
b
sub () { $val}
— псевдоописание константы, а если добавить директиву ретурн, то это уже функция. но времени вчитаться пока нет.b
IB
IB
P
b
МК
P
МК
AP
A new experimental infix operator called isa tests whether a given object is an instance of a given class or a class derived from it
in
когда внедрят таки? после выпиливания смартматча только листутилсы остались...