Метод открытия файла в Perl

#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, если не прищуриваться.)