在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大小,因为我添加了额外的文本?我检查了两个文本文件,副本确实有最后的文本.
谢谢你的帮助!
您可以使用文件名检查文件的大小(您不必打开它).
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)
| 归档时间: |
|
| 查看次数: |
138 次 |
| 最近记录: |