嗨这可能听起来很傻,但我想要做的是,我想循环遍历数组,如果它在文本文件中找到匹配的模式,请打印md127。否则打印sda然而我不希望它为它找不到的每一行打印sda,我只想打印一次而且只有找不到匹配的模式。以下是我的代码示例:
#open output
open (IN, $output) || die "Cannot open the.$output.file";
my @lines = <IN>;
close IN;
for (@lines)
{
if ($_=~ /$find/ )
{
#&md127;
print "md127\n";
}
elsif ($_!~ /$find/)
{
print "sda\n";
}
}
任何帮助将不胜感激。
答案 0 :(得分:5)
#open output
open (my $IN, "<", $output) || die "Cannot open the.$output.file";
my @lines = <$IN>;
close $IN;
my $foundIt = 0;
for (@lines)
{
if ($_=~ /$find/ )
{
#&md127;
print "md127\n";
$foundIt = 1;
}
}
if (! $foundIt)
{
print "sda\n";
}
答案 1 :(得分:2)
一种可能的方法是设置$found
变量,最初设置为0
,如果找到了您要查找的内容,则设置为1
。
如果在循环结束时$found
为0
,则打印"sda"
:
$found = 0;
for (@lines)
{
if ($_=~ /$find/ )
{
#&md127;
print "md127\n";
$found = 1;
}
}
print "sda\n" unless $found;