Ах, понятно.Вы думаете , что ничего не печатается из-за пустого хэша.Но действительно ничего не печатает, потому что вы ничего не даете для запуска .Вы даете все это для compile , но ничего для run .
sub main
ничего не значит в Perl.Чтобы запустить это, вы должны поместить куда-нибудь на свою основную линию main();
Затем при условии, что вы закомментируете ---
в строке 25, вы получите ожидаемый результат.
Вот почему распечатка материала самостоятельно 1) немного больше печатает или 2) ненадежна.Вы ничего не видели и думали, что наш хэш был пуст.На самом деле, код даже не попал в объявление.Итак, вот подсказка в командной строке:
cpan Smart::Comments
А затем в вашем коде:
use Smart::Comments;
...
### %hash1
Таким образом, пустой хеш выглядит так:
### %hash1: {}
И тот, который вы ожидаете, выглядит следующим образом:
### %hash1: {
### key1 => 1,
### key2 => 2
### }
Без вызова сабвуфера main
ваш вывод выглядит так:
(да, оно пустое)
В противном случае, нет ничего плохого в том, что ваша передает хеш.