1 #用select, 要先select一个句柄, 用完后记得select回原来的 2 open FILE, ">log.txt"; 3 select FILE; 4 $| = 1; 5 #$|为true时设置FILE为无缓冲 6 print FILE "The log file data"; 7 #print "The log file data"; 8 select STDOUT; 9 #上面的打印不会经过缓冲而直接写进文件log.txt 10 close FILE; 11 12 #方法二 13 use IO::Handle; 14 open DATA, ">err.log"; 15 DATA->autoflush(1); 16 print DATA "login errot"; 17 DATA->close; 18 19 # 其实第6行的文件句柄可以去掉 20 21 # 如果你选择了一个句柄, print默认的输出方向就是你select那个 22 23 # 最好用完后恢复stdout