perl

时间:2018-05-22 13:38:04

标签: perl

我写了一些code来创建数组的哈希值。

我创建了一个内联$seen来删除重复项,而不是构建哈希表,这将删除我的键和值的重复项。

我意识到我无法在换行符||之后运行多个命令(如循环),但只能在||

之后将它们添加到一行中

原始部分:

...
foreach my $k (sort keys %store) {
     ($key, $key2, $value) = split /-/, $k;
     chomp ($key, $key2, $value);
     $seen{$key}++ || print "1. $key\n";
     $seen{$key2}++ || print "2. -- $key2\n";
     $seen{$value}++ || print "3. ----$value\n";
}

我可以打印这样的行,但维护起来很乏味:

$seen{$value}++ || print "3. ----$value\n "something else";

我实际上正在创建一个xml文件,并且将我的所有文本放在一行中看起来非常糟糕且难以调试:所以我真的在寻找一种方法来代替:

...
foreach my $k (sort keys %store) {
     ($key, $key2, $value) = split /-/, $k;
     chomp ($key, $key2, $value);
     $seen{$key}++ || {
                    print "1. $key\n";
                    print "that went well..";
                    ...
                  }

     $seen{$key2}++ || print "2. -- $key2\n";
     $seen{$value}++ || print "3. ----$value\n";
}

有没有办法从这样的一行做到这一点?

有关此脚本的更多信息,请参阅this question @Mob为我提供的帮助。

1 个答案:

答案 0 :(得分:2)

$seen{$key}++ or do {
    print "1. $key\n";
    print "that went well..";
    ...
};