すんません、こんな感じで動いてます。foreachを書き間違えました。
my @lines = (
"2012-09-11 12:00:10 abcde number = 123456 id = 7",
"2012-09-11 12:05:19 abcde number = 12333333 bbbb cccc id = 7",
"2012-09-11 12:05:39 no log id = 7",
"2012-09-11 19:44:00 defghijkl number = 12345644 id = 9",
"2012-09-11 20:22:13 abcde number = 12345600 id = 7 location = /home/users/xxx",
"2012-09-12 11:44:33 abcde ok id = 7"
);
my @numbers;
@lines = grep(/number = / && /id = 7/, @lines);
foreach (@lines) {
if ($_ =~ /number = (\d+)/) {
push @numbers, $1;
}
}
foreach (@numbers) {
print $_, "\n";
}