Я только что прочитал секретные псевдоконстанты, а именно Константа космического флота
<=><=><=> Space fleet 0
Кажется, это потому, что внешний <=>
делает что-то, чего я не понимаю. Мой вопрос: почему
my $foo = <=>;
Установить $foo
на =
? Другие не алфавитно-цифровые символы тоже работают,
my $foo = <=>;
my $foo = <->;
my $foo = </>;
Но буквенно-цифровые символы не ...
my $foo = <a>;
Более того, стручок perlsecret
сбивает меня с толку ,
Хотя это выглядит как последовательность из трех операторов космического корабля, только средний корабль является настоящим космическим кораблем. Два внешних "космических корабля" на самом деле являются вызовами glob("=")
.
Похоже, что это не так, поскольку я не могу понять, почему, glob("=")
вернул бы =
, но glob("a")
вернул бы undef
- даже если есть файл с именем a
в текущем рабочем каталоге.
Что делает Perl в обоих этих случаях? Я предполагаю, что он возвращается к литералу, если вещь внутри <>
не является буквенно-цифровой - это поведение поддерживается?