【问题标题】:Renaming multiple folders using perl使用 perl 重命名多个文件夹
【发布时间】:2015-03-20 06:37:21
【问题描述】:

我有一个文本文件 file.txt,其中包含 100 个单词。 我需要在 file.txt 中为这些单词创建 100 个目录。 每个目录名称应与一行中的每个单词匹配。 我需要使用 perl 为上述查询创建代码。

我尝试如下:

system("mkdir $_") for qw(tuber sp smeg  para);

【问题讨论】:

  • 显示你尝试过的整个程序。
  • 我试过这条线,我不知道用 100 字的线来做
  • 尝试使用while循环读取文件并在循环中调用mkdir
  • 如果您的代码有问题(错误消息),那么请带着真正的问题回到 SO。

标签: perl perl-module file-handling


【解决方案1】:

一般来说,你不应该使用system 在 Perl 中像 mkdir 那样做基本的文件操作。 Perl 为此内置了插件。与调用外部可执行文件相比,它们通常更快且警告更少。

use v5.10;
use strict;
use warnings;

# This will make file operations throw exceptions so we don't
# have to write "or die" on everything.
use autodie;

open my $fh, "whatever-your-file-is";
while( my $line = <$fh> ) {
    chomp $line;
    mkdir $line;
}

如果文件包含像some/sub/directory 这样的行,您将希望使用来自File::Pathmkpath 而不是mkdir。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-10-29
    • 2019-07-23
    • 2021-04-10
    • 2022-08-18
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多