PERL - статьи




П2.4.4 Встроенные функции - часть 5


local($min,$max,$thunk) = @_;

local $result = '';

local $i;

for ($i = $min; $i < $max; $i++) {

$result = eval $thunk;

}

$result;

}

log EXPR Возвращает натуральный логарифм EXPR, по умолчанию обрабатывает переменную $_.

map EXPR,LIST Подставляет каждый элемент из списка LIST в EXPR (которое может быть блоком) и возвращает список полученных после обработки величин. @chars = map(chr, @nums);

mkdir FILENAME,MODE Создает директорию с именем FILENAME и правами доступа указанными в переменной MODE. В случае успеха возвращает 1, в противном случае возвращает 0 и устанавливает значение переменной $!(errno).

my EXPR Эта функция (так же как и описанная ранее функция local) делает перечисленные переменные локальными в пределах блока, подпрограммы, eval или do. Если список состоит более чем из одного элемента, то он должен быть заключен в скобки. Все элементы в списке должны быть фактическими параметрами. В отличие от local, переменные локализованные функцией my не видны снаружи блока, подпрограммы или другой конструкции, внутри которой my употребляется.

next LABEL Употребляется подобно continue оператору в C - запускает следующую итерацию цикла. line: while (<STDIN>) {

next line if /^#/;

...

}

oct EXPR Возвращает десятичное значение EXPR, интерпретируемого как строка в восьмеричном формате. (Если строка начинается с 0x, то интерпретируется, как строка в шестнадцатеричном формате.)

open FILEHANDLE,EXPR Открывает файл, имя которого описано в переменной EXPR и привязывает его к FILEHANDLE. Если EXPR опущено, то переменная с таким же именем как FILEHANDLE содержит имя файла. Если имя файла начинается со знака: ¯

< файл открывается на чтение.

> файл открывается на запись.

>> файл открывается для добавления.

| имя файла расценивается как команда,

с которой будет организован программный канал,

то есть вывод в дескриптор FILEHANDLE будет

передаваться на вход программе EXPR.

Если знак | указывается после имени команды, то вывод этой команды будет ассоциирован с дескриптором FILEHANDLE, из которого будет производиться чтение. Интересно, что нельзя открыть двойной программный канал, то есть ассоциировать ввод и вывод команды с дескриптором файла (что соответствовало бы системному вызову popen в UNIX).

В случае, когда имя файла оканчивается вертикальной чертой, оно расценивается как имя команды, вывод которой будет интерпретироваться как ввод из файла (аналог функции popen(3)). open(LOG, '>>/usr/spool/news/twitlog');




Содержание  Назад  Вперед