gpt4 book ai didi

perl - while 和 foreach 混合循环问题

转载 作者:行者123 更新时间:2023-12-02 07:53:36 25 4
gpt4 key购买 nike

!C:\Perl\bin\perl.exe

use strict;
use warnings;


my $numArgs = $#ARGV + 1;
print "thanks, you gave me $numArgs command-line arguments.\n";



while (my $line = <DATA> ) {
foreach my $argnum (0 .. $#ARGV) {
if ($line =~ /$ARGV[$argnum]/)
{
print $line;
}
}
}

__DATA__
A
B
Hello World :-)
Hello World !

当我传递一个 arg 时,它运行良好。比如我运行test.pl A or test.pl B or **test.pl Hello"

当我传递两个参数时,它只工作一段时间。

成功:当我运行 test.pl A Btest.pl A Hello 或 **test.pl B Hello"

失败:当我运行 test.pl Hello World*

产生并输出重复行:

D:\learning\perl>t.pl Hello World
thanks, you gave me 2 command-line arguments.
Hello World :-)
Hello World :-)
Hello World !
Hello World !

D:\learning\perl>

如何解决?感谢您的阅读和回复。

[更新]我不想打印重复的行。

最佳答案

我没有看到问题,您的脚本处理 __DATA__ 并针对它测试所有输入词:因为“Hello”和“World”各匹配两次,它会打印 4 行。

如果不想写多行,在print语句后加上last;即可。

关于perl - while 和 foreach 混合循环问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2243217/

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