文章详情

  • 游戏榜单
  • 软件榜单
关闭导航
热搜榜
热门下载
热门标签
php爱好者> php文档>Perl 记忆点滴(二) 文件句柄的读写

Perl 记忆点滴(二) 文件句柄的读写

时间:2010-02-24  来源:PHP爱好者

之前写的东西,忘记保存,结果重新写。 如果有开心网那样,可以自动保存就好了。   句柄handle 分为文件句柄和目录句柄,文件句柄实际上包含文件,进程和套接字的读写。   文件句柄的操作步骤 open(FD,"filename"); @lines=<FD>; close(FD);   open()由以下几个用法 open(FD,"> filename") 写数据进文件 open(FD,">> filename") 追加数据进文件 open(FD,"filename") 读文件 open(FD,"process |") 读进程结果 open(FD,"| to process") 往进程中写数据,不过对WINDOWS系统写会有问题   $line=<FD> 获取起始行 如果要遍历整个文件 while (defined $line=<FD>) {}   @lines=<FD> 将整个文件放入lines数组中   可以使用FileHandle包,可以避免变量覆盖的现象。 use FileHandle; $fileHandleName= new FileHandle("filename"); $line=<$fileHandleName>;   close() 关闭文件句柄 实际上,perl会在句柄超出范围或程序结束时,自动关闭。   写入操作 print (@arrayName) 或 print FILEHANDLENAME (@arrayName)   也可以用以下方式来写入 foreach $line(@arrayName) {     print FILEHANDLENAME "$line\n"; }   使用$line的好处是,程序在运行时,会将$line的值立即放入文件中。而使用@arrayname的方式会先放入缓存中累积,如果出现进程中断,会倒是输出数据丢失。如果要避免这个问题出现可以把$|设置为1   对二进制文件的读写 使用binmode FILEHANDLE 具体实例 open(IN_FD,"test.gif"); open(OUT_FD," > copy.gif"); binmode(IN_FD); binmode(OUT_FD);   while(read(IN_FD,$buffer,1024){      print OUT_FD,$buffer; }   close(IN_FD); close(OUT_FD);     select(FILEHANDLE) 用于设定输出的默认句柄 在select指定句柄后,随后输出在默认情况下,会输出到指定的句柄   open(FD,"> newfile"); select(FD); print "test"; #将test添加到newfile中 select(STDOUT); print "ok";  #将ok输出到屏幕   flock()文件加锁,只适用unix,其他系统或网络文件可能无效 1 创建共享锁  2 创建排他锁  4 创建非阻塞锁 8 排除当前锁    open(FD,">> inputfile"); flock(FD,2); print FD "test string"; flock(FD,8); close(FD);     seek()使用,可以让文件指针指向到指定位置 seek(FILEHANDLE,BYTEOFFSET,FILEPOSITION) BYTEOFFSET 用于位移值,可以是正负值 FILEPOSITION 位置值,0表示到文件开头,1文件中的当前位置,2文件末尾位置   tell()返回文件中当前字节的位置   打开文件进行读写的操作 open(FD,"+<filename") 先读后写 open(FD,"+>filename") 先写后读 open(FD,"+>>filename") 先追加后读            
相关阅读 更多 +
排行榜 更多 +
方块枪战战场安卓版

方块枪战战场安卓版

飞行射击 下载
战斗火力射击安卓版

战斗火力射击安卓版

飞行射击 下载
空中防御战安卓版

空中防御战安卓版

飞行射击 下载