Мне интересно, почему вызов map
во втором фрагменте пропускает ошибку 'undefined'?
use strict;
use warnings;
my $x;
my @a = @{ $x }; # error: Can't use an undefined value as an ARRAY reference
Сравнить с:
use strict;
use warnings;
my $x;
my @a = map $_, @{ $x }; # no error, @a is empty