Как добавить в начало или конец файла в Perl?
Каков наилучший способ записи некоторого содержимого в начало и конец файла в Perl
Ответы
Ответ 1
Добавление тривиально:
open my $fh, '>>', 'some.file' or die "Cannot open file for append: $!\n";
print $fh $some_content;
close $fh;
С другой стороны, добавление чего-то в начале (или в середине) очень сложно.
Один из способов сделать это:
use File::Temp qw/ tempfile /;
use File::Copy;
open my $in, '<', 'some.file' or die "Cannot open file for reading: $!\n";
my ($out, $temp_file_name) = tempfile();
print $out $some_content;
my $l;
print $out $l while defined( $l = <$in> );
close $in;
close $out;
move( $temp_file_name, 'some.file' );
Ответ 2
Это охватывается FAQ
Ответ 3
Следующий код - самый простой пример, который я могу придумать.
#!/usr/local/bin/perl
open (MYFILE, '>>data.txt');
print MYFILE "Bob\n";
close (MYFILE);
" → " сообщает открытой функции, которую вы хотите отредактировать, помещая символы в конец.
Замените это на " > ", чтобы заменить содержимое.
Чтобы разместить содержимое в начале файла - я предлагаю прочитать в файле, вручную помещая содержимое при попрошайке массива char, а затем записывая в файл с помощью " > "
Ответ 4
Используйте модуль Tie:: File, и это можно сделать легко, хотя это может быть не самый эффективный способ. Вы можете редактировать файл так же, как если бы он был массивом perl, поэтому, чтобы добавить строку в начало, вы должны использовать unshift() и добавить строку в конец, вы можете использовать push(). Документация модулей довольно понятна, как ее использовать.
Ответ 5
Вы ищете систему шаблонов ?