"b", ); foreach my $num ( keys %ha-6ren">
gpt4 book ai didi

perl - 如何使这个嵌套循环在 perl 中继续?

转载 作者:行者123 更新时间:2023-12-01 10:06:06 25 4
gpt4 key购买 nike

这是我的代码:

#!perl -w
use strict;

my %hash = (
1 => "a",
2 => "b",
);

foreach my $num ( keys %hash ) {
while (<DATA>) {
s/$num/$hash{$num}/g;
print;
}
}
__DATA__
121212
11111
222

我打算用散列中存在的相应值替换所有数字。但它输出:

a2a2a2
aaaaa
222
Hit any key to close this window...

为什么 foreach 循环只运行一次?谁能给我解释一下?我应该如何更改代码?我希望它输出:

ababab
aaaaa
bbb

提前致谢。

最佳答案

foreach 的原因循环似乎只运行一次是因为您正在阅读 <DATA>一次一行。第二次在外循环中循环时,没有更多的数据可以从内循环中的数据中读取。相反,你为什么不阅读所有 <DATA>首先进入列表:

@mylist = <DATA>

然后在你的内部循环中遍历这个列表。

关于perl - 如何使这个嵌套循环在 perl 中继续?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10460218/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com