【问题标题】:File handling to delete the contents of the file / Delete the file itelf文件处理删除文件内容/删除文件本身
【发布时间】:2014-06-25 17:51:05
【问题描述】:

我编写了一个 perl 脚本,它打开一个文件,将内容写入文件并关闭它。

open FILE, ">file.txt" or die $!;
print FILE $str;
close FILE;

一旦将内容写入文件,我需要删除文件的内容或删除文件本身。有没有办法做到这一点。?

我在网上搜索,发现可以进行以下操作。

mode    operand create  truncate
read/write  +<      
read/write  +>  ✓   ✓
read/append +>> ✓

但我找不到与删除文件内容或删除文件本身有关的任何信息。 (注意:我需要在写入内容后删除文件)。

【问题讨论】:

  • Erm...如果您要立即删除文件,为什么还要写入文件?
  • @raina77ow 这是我学校作业的一部分。我需要打开一个文件,写入并删除它。

标签: perl file-io mod-perl


【解决方案1】:

最好使用词法文件句柄和 open 的 3 参数形式。

代替

open FILE, ">file.txt" or die $!;
print FILE $str;
close FILE;

使用

open my $fh, ">", "file.txt" or die $!;
print $fh $str;
close $fh;

要删除文件,你可以这样做

unlink "file.txt" or warn "Could not delete: $!";

http://perldoc.perl.org/functions/unlink.html

【讨论】:

    【解决方案2】:

    有几个人给了你答案。但这里是您可能自己解决的方法。

    • 官方 Perl 文档位于 http://perldoc.perl.org/
    • 所有 Perl 内置函数的文档位于 http://perldoc.perl.org/perlfunc.html
    • 在该文档中,有一个标题为 Perl Functions by Category 的部分。
    • 该部分包含“文件句柄、文件或目录的函数”列表。其中包含指向大约 20 个函数的链接。即使您不认识一个明显删除文件的文件(我承认“取消链接”是一个有点晦涩难懂的名称),您也可以轻松地点击每个链接以阅读有关每个功能的更多详细信息。
    • 当您到达unlink 时,您会看到描述以“删除文件列表”开头。一个文件是一个(非常短的!)文件列表。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-03-03
      • 2015-02-14
      • 2020-12-10
      • 2012-06-20
      • 2012-11-11
      • 2011-05-21
      • 1970-01-01
      • 2021-09-18
      相关资源
      最近更新 更多