PERL: БИБЛИОТЕКА ПРОГРАММИСТА


PERL: БИБЛИОТЕКА ПРОГРАММИСТА - стр. 118


$shell_mfo                          = qx ps $$',    # Значение $$ от интерпретатора

Если операторы q(), qq() и qx() определяют одиночные строки, то qw() опре­деляет список однословных строк. Строка-аргумент делится по пробелам без интерполяции переменных. Следующие строки эквивалентны:

@banner =  ('Costs',   'only  ,     $4 95  ),


4.2. Вывод списков с запятыми    117

@banner = qw(Costs only $4 95),

@banner = split(     ',   'Costs only $4 95');

Во всех операторах определения строк, как и при поиске регулярных выраже­ний, разрешается выбор символа-ограничителя, включая парные скобки. Допус­тимы все четыре типа скобок (угловые, квадратные, фигурные и круглые). Следо­вательно, вы можете без опасении использовать любые скобки при условии, что для открывающей скобки найдется закрывающая:

§brax     = qw1   ()<>{}[]'.

brings    = qw(Nenya Narya Vilya),

Stags      = qw<LI TABLE TR TD A IMG H1  P>,

$sample   = qw(The vertical bar  (|)  looks and behaves like a pipe ),

Если ограничитель встречается в строке, а вы не хотите заменить его другим, используйте префикс \:

©banner = qw)The vertical bar (\|)  looks and behaves like a pipe  |,

Оператор qw() подходит лишь для списков, в которых каждый элемент являет­ся отдельным словом, ограниченным пробелами. Будьте осторожны, а то у Колум­ба вместо трех кораблей появится четыре:

$ships = qw(Nica Pmta Santa Магна),       и НЕВЕРНО1 " $ships = ('Nica1, 'Pinta', 'Santa Магна'),  # Правильно

> Смотри также---------------------------------------------------------------------------------------------

Раздел «List Value Constructors» perldata(l); раздел «Quote and Quote-Like Operators» perlop(l); оператор s/// описай в perlop(l).

4.2. Вывод списков с запятыми

Проблема

Требуется вывести список с неизвестным количеством элементов. Элементы раз­деляются запятыми, а перед последним элементом выводится слово and.

Решение

Следующая функция возвращает строку, отформатированную требуемым образом:




- Начало -  - Назад -  - Вперед -