perl-5.34.0
eof FILEHANDLE
eof ()
eof

Returns 1 if the next read on FILEHANDLE will return end of file or if FILEHANDLE is not open. FILEHANDLE may be an expression whose value gives the real filehandle. (Note that this function actually reads a character and then ungetcs it, so isn't useful in an interactive context.) Do not read from a terminal file (or call eof(FILEHANDLE) on it) after end-of-file is reached. File types such as terminals may lose the end-of-file condition if you do.

罨<�� FILEHANDLE 筝���ц˛��粋昭��帥��茵���ŝ�c����������˨��EOF ���菴���������������������� ��障����� FILEHANDLE �����ŝ�若����潟�������⓾����ŝ��������1 ���菴������障����� FILEHANDLE ��壔����ゃ��絎������勉����<�ゃ�˨����潟����˨��腓冴��綣���с����c�⓾�������障����障�������� (�����勰�∽�違�壔��絎����������絖����茯㏍�帥��ungetc ���茵���ŝ����障����勉�с�� 絲乗º�����勐�翫����˨�壩�������с�壔�������障��������) 腴壩�˨����<�ゃ�˨�� EOF ��̹��������緇���˨�������̬˛��粋昭��������� eof(FILEHANDLE) ��� ��若�喝�冴�������������⓾�壔�������障�������� �����勉�������ŝ��������������������腴壩�˨�勉�������ŝ����<�ゃ�˨�帥�ゃ���� EOF ��倶�����紊宴�c�⓾����障����������������障��������

An eof without an argument uses the last file read. Using eof() with empty parentheses is different. It refers to the pseudo file formed from the files listed on the command line and accessed via the <> operator. Since <> isn't explicitly opened, as a normal filehandle is, an eof() before <> has been used will cause @ARGV to be examined to determine if input is available. Similarly, an eof() after <> has returned end-of-file will assume you are processing another @ARGV list, and if you haven't set @ARGV, will read input from STDIN; see "I/O Operators" in perlop.

綣���違�������ャ����� eof ��壔�����緇���̬˛��粋昭��帥��茵���ŝ�c�� �����<�ゃ�˨��篏帥����障����� 腥冴�勖�㋚磁�����ゃ����� eof() ��夌�違�ŝ����障����� ��������壔�潟����潟����í�ゃ�潟�勉����<�ゃ�˨�ŝ�鴻����ф��������������<> 羲�膊�絖�腟���宴� ��≪�壔�祉�鴻����������㋙室�����<�ゃ�˨��腓冴����������̥�������������障����� ���絽吾�勉����<�ゃ�˨����潟����˨�◒����c�� <> ��壩��腓榊����˨�ŝ�若����潟�������ŝ����勉�с�� <> ���篏帥�������� eof() ���篏帥�������� ��ュ�����罩e幻���腆肴����������������� @ARGV ��������鴻����������障����� ���罕���˨��<> ��� EOF ���菴�������緇���� eof() ��壔�� 篁���� @ARGV ��ŝ�鴻�������☎�������⓾��������篁勐�������������� @ARGV �����祉����������⓾����ŝ����������� STDIN ������茯㏍�粋昭��帥�障��; "I/O Operators" in perlop ��������с����⓾��������������

In a while (<>) loop, eof or eof(ARGV) can be used to detect the end of each file, whereas eof() will detect the end of the very last file only. Examples:

while (<>) ��˨�若����勌賢��с�壔����������勉����<�ゃ�˨�勛�����������茯帥�鴻����˨�壔�� eof ��� eof(ARGV) ��������������勉��絲障���� eof() ��壩��緇���勉����<�ゃ�˨�勛����������勉�帥��茯帥�鴻�障����� 箴�:

    # reset line numbering on each input file
    while (<>) {
        next if /^\s*#/;  # skip comments
        print "$.\t$_";
    } continue {
        close ARGV if eof;  # Not eof()!
    }

    # insert dashes just before last line of last file
    while (<>) {
        if (eof()) {  # check for end of last file
            print "--------------\n";
        }
        print;
        last if eof();     # needed if we're reading from a terminal
    }

Practical hint: you almost never need to use eof in Perl, because the input operators typically return undef when they run out of data or encounter an error.

�憜�������ŝ����潟��: Perl ��� eof ���綽�荀������ŝ����������壔�� ��祉�������í�������障�����; ��堺�㋜����˨�壔�������若�帥����ŝ����ŝ�c����������������í�若�������c����������˨����ュ��羲�膊�絖���� undef ���菴������⓾����������������с�����