Вывод списков с запятыми
Проблема
Требуется вывести список с неизвестным количеством элементов. Элементы разделяются запятыми, а перед
последним элементом выводится слово and.
Решение
Следующая функция возвращает строку, отформатированную требуемым образом:
sub commify_series {
(@_ == 0) ? ' ' :
(@_ == 1) ? $_[0] :
(@_ == 2) ? join(" and ", @_) :
join (", " , @_[0..($#_-1], "and $_[-1]");
}
Комментарий
При выводе содержимое массива порой выглядит довольно странно:
@аrrау = ("red", "yellow", "green");
print "I have ", @аггау, " marbles. \n";
print "I have @array marbles\n";
I have redyellowgreen marbles.
I have red yellow green marbles.
На самом деле вам нужна строка "I have red, yellow, and green marbles". Приведенная выше функция генерирует
строку именно в таком формате. Между двумя последними элементами списка вставляется "and". Если в списке больше
двух элементов, все они разделяются запятыми.
См. также
Proverte kod v komentariyah gde pro list tam oshibki detskie
Оставить комментарий:
|
|