加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

Perl的File::Temp模块简约说明

发布时间:2020-12-16 00:41:17 所属栏目:大数据 来源:网络整理
导读:?? ? ?require File::Temp; ?? ? ?use File::Temp (); ?? ? ?use File::Temp qw/ :seekable /; ?? ? ?$fh = File::Temp-new(); ?? ? ?$fname = $fh-filename; ?? ? ?$fh = File::Temp-new(TEMPLATE = $template); ?? ? ?$fname = $fh-filename; ?? ? ?$tmp =

?? ? ?require File::Temp;

?? ? ?use File::Temp ();
?? ? ?use File::Temp qw/ :seekable /;

?? ? ?$fh = File::Temp->new();
?? ? ?$fname = $fh->filename;

?? ? ?$fh = File::Temp->new(TEMPLATE => $template);
?? ? ?$fname = $fh->filename;

?? ? ?$tmp = File::Temp->new( UNLINK => 0,SUFFIX => '.dat' );
?? ? ?print $tmp "Some datan";
?? ? ?print "Filename is $tmpn";
?? ? ?$tmp->seek( 0,SEEK_END );

用法
说明脚本(适用于window和UNIX)
脚本一,01.pl

 
 
  1. #!/usr/bin/perl?
  2. #!perl?
  3. #?兼容Win和unix?
  4. #?wangxiaoyu#live.com?
  5. use?strict;?
  6. use?warnings;?
  7. #?模块声明?
  8. use?File::Temp;??
  9. use?File::Spec;?
  10. use?IO::File;?
  11. ?
  12. #?这里是默认创建文件的位置?
  13. print?File::Spec->tmpdir();?
  14. print?"n";?
  15. ?
  16. #?定义文件句柄,使用后是否删除文件,文件后缀等?
  17. my?$fh?=?File::Temp->new(??
  18. ????????TEMPLATE?=>?'tmpXXXXX',??
  19. ????????UNLINK?=>?0,???
  20. ????????SUFFIX?=>?'.log',??
  21. ????????#?这里默认创建文件的位置被重新指定?
  22. ????????DIR?=>?File::Spec->tmpdir()??
  23. ????????);???
  24. my?$FileName?=$fh->filename;?
  25. ?
  26. #?打印tree命令的结果只是为了在windows和Unix上都显示结果?
  27. print?$fh?"以下是测试内容n",`tree`;?
  28. ?
  29. #?默认这个时候文件还在缓存里呢,使用IO::File的flush函数刷新到文件里?
  30. $fh->flush();?
  31. ?
  32. print?$FileName;?
  33. print?"n";?
  34. ?
  35. #?打印文件的内容?
  36. open(FH,$fh->filename)?or?die?"$!";?
  37. while(<FH>){?
  38. ????print?$_;?
  39. }?
  40. close(FH);?
脚本二,02.pl

 
 
  1. #!/usr/bin/perl?
  2. #!perl?
  3. #?兼容Win和Unix?
  4. #?wangxiaoyu#live.com?
  5. use?strict;?
  6. use?warnings;?
  7. #?模块声明?
  8. use?File::Temp?qw(tempfile);??
  9. use?File::Spec?qw(tmpdir);?
  10. use?IO::File;?
  11. ?
  12. #?这里是默认创建文件的位置?
  13. print?File::Spec->tmpdir();?
  14. print?"n";?
  15. ?
  16. #?定义文件句柄,使用后是否删除文件,文件后缀等?
  17. my?($fh,?$FileName)?=?tempfile(?
  18. ????????TEMPLATE?=>?'tmpXXXXX',???
  19. ????????SUFFIX?=>?'.log'?);?
  20. ?
  21. #?打印tree命令的结果只是为了在windows和Unix上都显示结果?
  22. print?$fh?"以下是测试内容n",`tree`;?
  23. ?
  24. print?$FileName;?
  25. print?"n";?
  26. ?
  27. #?默认这个时候文件还在缓存里呢,使用IO::File的flush函数刷新到文件里?
  28. $fh->flush();?
  29. ?
  30. #?打印文件的内容?
  31. open(FH,$FileName)?or?die?"$!";?
  32. while(<FH>){?
  33. ????print?$_;?
  34. }?
  35. close(FH);?
简介
?
new创建一个对象
my $tmp = new File::Temp();
或者
my $tmp = File::Temp->new();
可以跟的参数有:
TEMPLATE(或以跟至少四位的变量,用X表示) DIR SUFFIX UNLINK(0 或1)
?
方法
?
filename 返回临时文件的文件名
接着上面的例子
my $FileName = $tmp->filename;
?
unlink_on_destroy 控制文件在使用过后是否删除
$fh->unlink_on_destroy(1);
?
DESTROY 如果对象超出范围,会删除文件,这个与unlink_on_destroy 类似
unlink_on_destroy和DESTROY,在当变量$KEEP_ALL为真时,不会生效

函数
?
tmpfile 创建一个临时文件
use File::Temp qw(tempfile);
...
my $fh = tempfile();
或者
创建一个文件,目录由File::Spec模块的tempdir()函数指定
my ($fh,$filename) = tempfile();

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读