有一个my_file.txt
我知道的日志文件具有以下结构:
milk marta 1231 joe 1223 ralph 7C3D
cookie
jam
milk marta 163 joe 23 ralph 7FFF
我想要做的是在 perl 的正则表达式的帮助下提取以分隔符开头的所有行的值milk
(我事先知道)。然后我知道我将有许多值名称(在玩具示例marta
中 , joe
, ralph
),每个名称后跟一个十进制或十六进制值。
有没有办法在事先不知道它们是十进制还是十六进制的情况下读取这些值?
存储此值的最佳方法是什么?我想用 , , 的键来做一个哈希
marta
,joe
但ralph
我可能事先不知道它们,这意味着一旦我阅读了第一行,我就会知道所有这些,而不是以前。
到目前为止,我的尝试来了
$my_file = "my_file.txt"
open my $fh, $my_file or die "Nope!"
while (my $line = <$fh>)
{
if ($line =~ m/milk/)
{
# here iterate with a for or while loop over the $line
# and read word and value
}
}