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. # 这里是默认创建文件的位置 
  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. 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.         UNLINK => 0,   
  20.         SUFFIX => '.log' ); 
  21.  
  22. # 打印tree命令的结果只是为了在windows和Unix上都显示结果 
  23. print $fh "以下是测试内容\n",`tree`; 
  24.  
  25. print $FileName; 
  26. print "\n"
  27.  
  28. # 默认这个时候文件还在缓存里呢,使用IO::File的flush函数刷新到文件里 
  29. $fh->flush(); 
  30.  
  31. # 打印文件的内容 
  32. open(FH,$FileName) or die "$!"
  33. while(<FH>){ 
  34.     print $_; 
  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();

     本文转自xiaoyuwang 51CTO博客,原文链接:http://blog.51cto.com/wangxiaoyu/523278,如需转载请自行联系原作者



相关文章
|
7月前
|
JavaScript Python 内存技术
error C:\Users\Acer\Downloads\Desktop\hrsaas-84\node_modules\deasync: 莫名其妙报错一堆python问题
error C:\Users\Acer\Downloads\Desktop\hrsaas-84\node_modules\deasync: 莫名其妙报错一堆python问题
126 0
|
8月前
|
JavaScript 前端开发 PHP
PHP - Laravel 视图模板(blade.php) @ 原始形态输出(Vue 与 PHP 混编)
PHP - Laravel 视图模板(blade.php) @ 原始形态输出(Vue 与 PHP 混编)
95 0
|
9月前
|
PHP
php开发实战分析(4):php调用封装函数包含文件路径自适应不同目录的解决方案($_SERVER[‘DOCUMENT_ROOT‘]与__DIR__魔术常量)
php开发实战分析(4):php调用封装函数包含文件路径自适应不同目录的解决方案($_SERVER[‘DOCUMENT_ROOT‘]与__DIR__魔术常量)
128 0
|
9月前
|
PHP Apache Windows
工银e生活开发脱坑日志(5)wampServer集成环境配置php ts版php_infosec.dll文件
工银e生活开发脱坑日志(5)wampServer集成环境配置php ts版php_infosec.dll文件
104 0
|
9月前
|
PHP 数据安全/隐私保护 开发者
|
Shell PHP
关于php创建扩展的一个坑:找不到skeleton
关于php创建扩展的一个坑:找不到skeleton
77 0
关于php创建扩展的一个坑:找不到skeleton
|
缓存 PHP
php is_dir函数结果不准确,php file_exists函数结果不准确,php is_file函数结果不准确
php is_dir函数结果不准确,php file_exists函数结果不准确,php is_file函数结果不准确
69 0
|
PHP
php的file_get_contents和curl差距
php的file_get_contents和curl差距
131 0
php的file_get_contents和curl差距