Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
perl.doc
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
388.1 Кб
Скачать

Функция values

Функция values возвращает обычный массив, состоящий из значений ассоциативного массива. Она имеет следующий формат:

@value_list = values(%Array)

Функция values возвращает массив значений ассоциативногомассива в виде регулярного списка. Следующий фрагмент программыиллюстрирует использование функции values:

# Используем значения из предыдущего примера

%ages = ('Bob', 25, 'Mary', 30, 'Zack', 15);

@list = sort values %ages; # @list (15, 25, 30)

@list = %ages; # @list ('Zack', 15, 'Bob', 25, 'Mary', 30)

Функция each

Функция each осуществляет итерации элементов в ассоциативном массиве. Она имеет следующий формат:

@key_values = each(%Array);

Всякий раз, когда скрипт вызывает функцию each, она возвращает список из двух компонент, которые содержат пару ключ-значение. Когда функция достигает конца списка, она возвращает пустойсписок. При следующем вызове функции процесс итерации начнетсясначала. Следующий фрагмент программы иллюстрирует использованиефункции each:

# Используем значения из предыдущего примера

%ages = ('Bob', 25, 'Mary', 30, 'Zack', 15);

while (($name, $age) = each %ages)

{

# Выведем ages

print "$key is $ages{$key}\n";

}

Функция delete

Функция delete удаляет элементы ассоциативного массива. Онаимеет следующий формат:

Delete $Array{Key}

Следующая инструкция использует функцию delete для того,чтобы удалить элемент, отвечающий ключу Bob из ассоциативногомассива $Employees:

Delete $Employees{'Bob'}

Аргументы командной строки

Скриптам на языке Perl легко получить доступ к аргументамкомандной строки. Всякий раз, когда запускается скрипт, Perl помещает аргументы командной строки скрипта в списочную переменную@ARGV. Следующий фрагмент программы служит для вывода аргументовкомандной строки на дисплей:

while ($arg = shift @ARGV)

{

print "$arg\n";

}

Доступ к переменным окружения

Доступ к переменным окружения осуществляется в скриптах наязыке Perl также очень просто. Всякий раз при запуске скриптаPerl помещает копии переменных окружения в ассоциативный массив сименем %ENV. В следующей инструкции массив %ENV используется длявывода текущего каталога:

print "$ENV{PATH}\n"; # Выведет текущий каталог

Кроме получения значений из массива %ENV, скрипты также могут изменять элементы массива. Такие изменения массива %ENV изменят установку переменных окружения для всякого процесса-потомка,создаваемого скриптом. Например, следующая инструкция используетмассив %ENV для изменения текущего пути:

$ENV{PATH} = 'c:\\myexec;'.$ENV{PATH};

Примечание: Изменения, которые скрипт делает в массиве %ENV, неповлияют на исходные переменные окружения. Иными словами, послеокончания работы скрипта переменные окружения системы не изменятся.

Файловый ввод и вывод

Perl специально разрабатывался для того, чтобы служить адекватным средством для чтения и записи в текстовые файлы. Тем неменее, как вы узнаете далее, Perl выполняет функции по произвольному доступу и вводу-выводу бинарных файлов. Операции по работе с файлами требуют указатель файла (file handle), который является переменной, соответствующей конкретному файлу. По умолчанию каждый скрипт на языке Perl имеет три стандартных указателя,которые Perl автоматически открывает при запуске скрипта: STDJN,STDOUT, STDERR. Эти три стандартных указателя отвечают стандартным потокам STDIN, STDOUT, STDERR языка программирования С. Кроме того, скрипт языка Perl может открыть дополнительные указатели для других специфических файлов.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]