千家信息网

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

发表于:2024-10-26 作者:千家信息网编辑
千家信息网最后更新 2024年10月26日,require File::Temp;use File::Temp (); use File::Temp qw/ :seekable /; $fh = File::Temp->new(); $fna
千家信息网最后更新 2024年10月26日Perl的File::Temp模块简约说明

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 data\n"; print "Filename is $tmp\n"; $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. print File::Spec->tmpdir();
  13. print "\n";
  14. # 定义文件句柄,使用后是否删除文件,文件后缀等
  15. my $fh = File::Temp->new(
  16. TEMPLATE => 'tmpXXXXX',
  17. UNLINK => 0,
  18. SUFFIX => '.log',
  19. # 这里默认创建文件的位置被重新指定
  20. DIR => File::Spec->tmpdir()
  21. );
  22. my $FileName =$fh->filename;
  23. # 打印tree命令的结果只是为了在windows和Unix上都显示结果
  24. print $fh "以下是测试内容\n",`tree`;
  25. # 默认这个时候文件还在缓存里呢,使用IO::File的flush函数刷新到文件里
  26. $fh->flush();
  27. print $FileName;
  28. print "\n";
  29. # 打印文件的内容
  30. open(FH,$fh->filename) or die "$!";
  31. while(){
  32. print $_;
  33. }
  34. 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. print File::Spec->tmpdir();
  13. print "\n";
  14. # 定义文件句柄,使用后是否删除文件,文件后缀等
  15. my ($fh, $FileName) = tempfile(
  16. TEMPLATE => 'tmpXXXXX',
  17. UNLINK => 0,
  18. SUFFIX => '.log' );
  19. # 打印tree命令的结果只是为了在windows和Unix上都显示结果
  20. print $fh "以下是测试内容\n",`tree`;
  21. print $FileName;
  22. print "\n";
  23. # 默认这个时候文件还在缓存里呢,使用IO::File的flush函数刷新到文件里
  24. $fh->flush();
  25. # 打印文件的内容
  26. open(FH,$FileName) or die "$!";
  27. while(){
  28. print $_;
  29. }
  30. 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();
0