Еще один бит "быть более Perlish" - это не использовать цикл C-style for
.Существует почти никогда необходимость использовать стиль C * for
в Perl.
Вместо
for(my $i=1;$i<$count;$i++) { ... }
использовать
for my $i (1 .. $count) { ... }
Они почти эквивалентны, за исключением того, что последняя версия более легко читаема и более устойчива к ошибкам, возникающим в результате единичных ошибок.(Причина, по которой ваш код печатал только 1|2|3
вместо 1|2|3|4
, заключается в том, что тест в вашем стиле C for
проверял $i<$count
, когда он должен был быть $i<=$count
- это очень распространенная ошибка с C-style for
циклы, которые for (list)
полностью избегает.)
Кроме того, не добавляйте префиксы к вашим дополнительным вызовам с &
.Это пережиток Perl 4, который больше не нужен в Perl 5 и имеет побочные эффекты, о которых вы, вероятно, не знаете и, вероятно, не хотите.Просто используйте printC($count)
вместо &printC($count)
.
Но, да, в данном конкретном случае join
, вероятно, лучше, чем for
в любом случае.