添加更多数据后,为什么我的文件大小相同?

jel*_*ier 0 perl file-io

在Perl上遇到一些麻烦(我是全新的).我在同一目录中有一个.txt文件.我打算复制文件,将其打印到stdout,向副本添加更多文本,并比较文件大小.这是我到目前为止:

#!/usr/local/bin/perl
use File::Copy;

copy("data.txt", "copyOfData.txt") or die "copy failed :(";
open (MYFILE, "data.txt") or die "open failed :(";
while (<MYFILE>) {
    chomp;
    print "$_\n";
}
$filesize = -s MYFILE;
print "MYFILE filesize is $filesize\n";
close (MYFILE); 

open(MYCOPYFILE, ">>copyOfData.txt");
print MYCOPYFILE "\nextra data here blah blah blah\n";
$filesize = -s MYCOPYFILE;
print "MYCOPYFILE filesize is $filesize\n";
close (MYCOPYFILE); 
Run Code Online (Sandbox Code Playgroud)

但是,我得到的输出如下:

MYFILE文件大小为28 MYCOPYFILE文件大小为28

肯定MYCOPYFILE大小应该大于MYFILE大小,因为我添加了额外的文本?我检查了两个文本文件,副本确实有最后的文本.

谢谢你的帮助!

dgw*_*dgw 6

您可以使用文件名检查文件的大小(您不必打开它).

my $size = -s 'data.txt' ;
Run Code Online (Sandbox Code Playgroud)

你应该总是用你的脚本开始

use strict ;
use warnings ;
Run Code Online (Sandbox Code Playgroud)

使用三参数版本可以更好地打开文件 open

open my $filehandle , '<' , 'filename' or die "Failed to open: $!" ;
Run Code Online (Sandbox Code Playgroud)