perl - 编写以下内容的更简洁方法

标签 perl

<分区>

用 Perl 编写以下代码的最有效方法是什么:

my $index = 0;
foreach ( @spec ) {
    if ( $module =~ m/$_/ ) {
        splice(@spec, $index, 0, $module);
        last;         
    }
    $index++;
}

这很好用。只是显得有点啰嗦。我的想法是,在数组中找到 $module 的匹配项时,我添加了一个条目。我想让数组保持一定的顺序并排序。

即如果我的数组是 [a,b,c,d] 而我的 $module 是 'c',我希望结果数组是是 [a,b,c,c,d]

最佳答案

你想要“更高效的罗嗦”???我想您不是要打高尔夫球,而是要更易读的代码。

@spec = map { $_ eq $module ? ($_, $_) : $_ } @spec;

关于perl - 编写以下内容的更简洁方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16482585/

相关文章:

perl - 即使子类覆盖该属性,也会默认使用 Moose 属性

perl - 分析超时的 Perl CGI 脚本

perl - perl 常量在哪里被它们的值替换?

perl - 编写一个 Perl 程序,以便 Ctrl-C 杀死所有 fork

mysql - Perl 将数据从一个数据库复制到另一个数据库

python - 在 perl 中运行 python 脚本

perl - 我应该将 perl 'xt' 测试上传到 CPAN 吗?

perl - 这个 CPAN 错误是什么意思?

java - XSLT 等同于 XBRL,允许像 XSLT 对 XML 那样对 XBRL 进行转换

arrays - 为什么定义的函数不起作用?