perl读写二进制文件只能使用sysread和syswrite
以下是一个读取文件,写入文件的例子
open RF, '<F:/training video/_back/1.wmv'; open WF, '>F:/training video/_back/11.wmv'; print "begin:\n"; my $len_read=1024; my $len = sysread RF, $buf, $len_read; while ( $len > 0 ) { syswrite WF, $buf, $len; $len = sysread RF, $buf, $len_read; } close RF; close WF; print "complete";
注:这两个函数没有用到缓存,故读写速度会较慢,如果要读的文件比较大,并且len_read设置的很小,比如1,则
这个程序会非常之慢。另外, read函数与sysread函数有些类似,不过read是按字符,sysread是按字节