Я хочу проанализировать текст файла, а затем помещать его в хэш. Мой файл выглядит по адресу:Perl - проанализировать текст файла в hash
key1 val,val,val,val,val,val,val,val,val,val,val,val,val,val,val,val,val,val,
val,val,val,val
key2 val,val,val,val,val,val,val,val,val,val,val,val,val,val,val,val,val,val,
val,val,val,val
key3 val
key4 val,val
key5 val,val,val,val,val,val,val,val,val,val,val,val,val,val,val,val,val,val,
val,val,val,val,val,val,val,val,val,val,val,val,val,val,val,val,val,val,val,
val,val,val,val,val,val,val,val,val,val,val,val,val,val,val
Мои ключи до того места, и мои ценности список элементов после пространства и перед каждой запятой. У меня есть несколько строк, где нет ключа, потому что значения продолжаются на нескольких строках.
Так что я хочу хэш подобное (я наиболее знаком в Python):
hash={'key1':[val,val,...],'key2':[val,val,...]}
Мой код: `
my %hashNames;
open INFILE, "./file.txt" or die $!;
my @temp =();
while (my $line = <INFILE>)
{
my @names = split /[\t,]/, $line;
my $ID = $names[0];
if ($line =~ /\t/)
{
my @temp=();
for (my $i = 1; $i < @names; $i +=1)
{
push (@temp, $names[$i]);
}
}
else
{
for (my $i = 0; $i < @names; $i +=1)
{
push (@temp, $names[$i]);
}
}
}`
показать нам, что вы пытались –
Если вы знаете, как сделать это в Python, покажите нам это пожалуйста. – simbabque
Я думаю, что я должен читать каждую строку, и если есть пробел, я должен создать новый ключ и нажать значения differents (в списке), а если нет места, я должен добавить значения в предыдущий ключ. – Tof