#perl #file-io #methods
#perl #file-io #методы
Вопрос:
Я протестировал >>
и >
для Open destination file в моем коде ниже, он работает хорошо. В чем разница для них?
my $sourfile = "ch1.txt";
my $destfile = "chapter1.txt";
open (SOURFILE, $sourfile);
open (DESTFILE, ">>$destfile"); #both >> and > work here.
#my $fh = *DATA;
my $fh = *SOURFILE;
Ответ №1:
Разница:
> Open file for writing.
>> Open file for appending.
Возможно, вы захотите переключиться на использование формы с тремя аргументами open и на использование лексических переменных в качестве дескрипторов файлов:
open(my $handle, '>', "some_file") or die $!;
Комментарии:
1. 3 аргумента — это очень хорошая идея. Как и использование лексических дескрипторов файлов. Но это совершенно разные функции. Вам не нужно использовать open с тремя аргументами, чтобы использовать лексические дескрипторы файлов.
Ответ №2:
Заранее приношу извинения за краткость, но open — perldoc. На самом деле, я бы обобщил свой ответ на: всегда пробуйте http://perldoc.perl.org во-первых. Форумы / сайты вопросов и ответов — это ваше последнее средство, а не первое.
Ответ №3:
>
создает или усекает, если он уже существует. >>
создает или добавляет к существующему файлу. (И это не метод; Perl 5 на самом деле не такой уж OO, если не прищуриваться.)