Looking at the source for File::Compare
, there is an undocumented third input that is used as the read buffer size. A default is used if that third argument is not provided, which is the size of the first file (-s FROM
). If that file - or the third argument - is larger than 1024 * 1024 * 2
, that number (2mb) is used as the buffer size.
Basically, it reads the file in chunks up to 2mb, so it should be able to handle files of virtually any size given enough time.
It's all fine and dandy until someone has to look at the code.