我写了一些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为我提供的帮助。
答案 0 :(得分:2)
$seen{$key}++ or do {
print "1. $key\n";
print "that went well..";
...
};