【发布时间】:2018-05-22 22:54:36
【问题描述】:
我写了一些 code 从数组创建哈希。
我创建了一个衬垫$seens 来删除重复项,而不是构建哈希表,这将从我的键和值中删除重复项。
我意识到我不能在|| 之后的换行符中运行多个命令(就像循环一样),但只能在|| 之后的一行中添加它们
原文部分:
...
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 对我有很大帮助。
【问题讨论】:
-
行不等于 Perl 中的语句。
;分隔语句。 -
@simbabque 抱歉,这不是我要输入的内容,现在将修正。
-
@Jacob:说实话,我根本听不懂你的第一句话。我只从您的代码示例中收集了您想要的内容。请问能改一下语法吗?
-
@Borodin 对不起,我现在试着让它更容易理解。
-
如果您实际上是在制作 XML 文件,我建议您请使用解析器。
标签: perl