Определение Perl для TEXT в открытой функции - PullRequest
0 голосов
/ 11 сентября 2018

В Perl, какова цель использования текста с заглавной буквы для функции open?Это модуль или встроенная функция?

Вот код:

#!/usr/bin/perl -w
use v5.10.0;
use warnings;


my $filename = "<file.txt";

open(TEXT, $filename) or die "Can't open file.\n";

1 Ответ

0 голосов
/ 11 сентября 2018

TEXT - это то, что известно как глобальный дескриптор файла. Его можно использовать где угодно и когда угодно в любом коде во время работы вашей программы.

В лучших практиках говорится, что используется форма с тремя аргументами open () вместе с лексическим дескриптором файла. В следующем случае лексический дескриптор файла ($fh) ограничен своей собственной областью и закрывается, когда эта область заканчивается:

use warnings;
use strict;

{
    open my $fh, '<', 'test.txt' or die $!;
    while (<$fh>){
        chomp;
        print "$_\n";
    }
}

Если бы вы использовали глобальный дескриптор файла (TEXT), то он был бы доступен после завершения блока, что потенциально позволяло бы другим частям кода находиться далеко от всего этого.

Использование 3-arg open вместе с лексическими дескрипторами файлов обеспечивает узкие рамки вашей кодовой базы.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...