这个问题来自于需要确保对代码所做的更改不会影响其输出到文本文件的值.理想情况下,我会滚动一个子文件来取得两个文件名,并返回1或返回0,这取决于内容是否相同,空格和所有内容.
鉴于文本处理是Perl的堡垒,应该很容易比较两个文件并确定它们是否相同(代码未经测试).
use strict; use warnings; sub files_match { my ( $fileA,$fileB ) = @_; open my $file1,'<',$fileA; open my $file2,$fileB; while (my $lineA = <$file1>) { next if $lineA eq <$file2>; return 0 and last; } return 1; }
我想到的唯一方法(没有CPAN模块)是打开这两个文件,并逐行阅读,直到找到一个差异.如果没有发现差异,文件必须相同.
但这种做法有限而且笨拙.如果两个文件的总行不一致怎么办?我应该打开和关闭确定行数,然后重新打开扫描文本?呸.
我没有看到任何与perlfaq5有关的事情.我想远离模块,除非它们带有Perl 5.6.1核心的核心.
解决方法
在
core.
use File::Compare; if (compare("file1","file2") == 0) { print "They're equal\n"; }