Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Perl: Системное программирование > функция - chomp, пом.найти определение понятия


Автор: Kari 8.8.2006, 21:00
Добрый день.

Извините за ламерский подход к программированию. Ковыряю скрипт, наткнулась на chomp, поиск не дал результата. Помогите разобраться с чем едят этот chomp?

Заранее благодарна.

----часть кода-----
open allvotes, "<text/votes.txt";
$num=0;
while (<allvotes>)
{
$num++;
chomp;
@vote[$num] = $_;
}
close allvotes;
----часть кода-----

С уважением, Kari.

Автор: Nab 8.8.2006, 23:56
Большинство функций и операций Perl при отсутствии имени аргумента, используют переменную $_

В Вашем случае это расписывается так:

Код

# открываем файл на чтение
# кстати очень не аккуратно, нет проверки ошибок...
open allvotes, "<text/votes.txt"; 

# инициализируем некую переменную.... абсолютно не важна для сути понимания работы функции chomp
$num=0;

# Читаем из файловой переменной в дефолтную $_
while (<allvotes>)
{

# инкремен некой переменной :)
$num++;

# chomp удаляет из конца переданной ей строки "терминатор", 
# который в текущий момент установлен в переменной $/
# возвращает количество удаленных символов
# как правило используется для удаления символа перевода строки в конце строк 
# считанных из многострочного вместилища...
# так как аргумент не указан то используется $_
# ну и возвращаемое значение как правило тоже нафиг никому не нужно :) 
# вот и получается просто chomp :)
chomp;

# ну вот теперь наша обработанная строка 
#прочитанная из файла заносится в массив под индексом непонятной инкрементирующей переменной....
$vote[$num] = $_;
}

# Дык тут надеюсь понятно... закрываем наш файловый манипулятор...
# хоть это не забыли сделать....
close allvotes;

Автор: amg 9.8.2006, 06:26
 smile А еще файловые переменные лучше называть большими буквами и вместо "@vote[$num] = $_;" писать "$vote[$num] = $_;",  а то perl -w  будет ругаться.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)