Perl join()
игнорирует (пропускает) значения пустого массива; PHP implode()
не похоже.
Предположим, у меня есть массив:
$array = array('one', '', '', 'four', '', 'six');
implode('-', $array);
дает:
one---four--six
вместо (ИМХО предпочтительнее):
one-four-six
Есть ли другие встроенные модули с тем поведением, которое я ищу? Или это будет заказная работа?
join
не пропускает неопределенные элементы. Фактически, они приводят к предупреждению.$a[0]="a"; $a[2]="c"; say join "-",@a;
отображаетUse of uninitialized value within @a in join or string
иa--c
. Можно использоватьjoin '-', grep !defined, ...
для пропуска неопределенных значений.grep !length,
будет делать пустые строки.