LINUX.ORG.RU

Perl операторы «+<» и «+>»


0

0

Обьясните чайнику разницу между операторами (+< +>) открытия файлов.
Как я понял оператор +> открывает файл на чтение-запись
а +< открывает вообще непонятно для чего (чтение-чтение??).

Суть в следующем я открываю файл в режиме чтения-записи(+>)
чтобы обновить хранящуюся в нём информацию
и записать поверх старой инфы новую.

open(FILE,"+>$var_some_file");
#считываю весь файл в $all_info
$all_info=<FILE>;
#Заменяю старые (известные) значения новыми
$all_info=~ s/$old_value/$new_value/;
#усекаю файл до новой длины
truncate(FILE,length($all_info));
#перемещаюсь в начало файла
seek(FILE,0,0);
#Записываю обновленую информацию
print FILE $all_info;
close(FILE);
РЕPУЛЬТАТ нулевой файл оказывается ПУСТОЙ.
Зато работает этот код (который мне не совсем понятен)
#Открываю файл на чтение=чтение ??
open(FILE,"+<$var_some_file");
$all_info=<CHATTERS>;
$all_info=~ s/$old_info/$new_info/;
truncate(CHATTERS,length($all_info));
# Rewind to the beginning of the file...
#Перемещаем указатель позицию Взад, запись задом наперед ??
seek(CHATTERS, length($all_info) * -1, 2);
print CHATTERS $chatters;
close(CHATTERS);
Да и еще такой вопрос что означает оператор .=
Если я прально понимаю это конкатенация строк ?


Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.