Привет, я новичок в программировании на Perl.Я пытаюсь прочитать файл .csv
, в котором 2 поля разделены запятой.
Я хочу поместить все данные файла в хеш в виде ключа и его значения.
У меня есть входной файл
Данные
2.8, gitu
2.5, Has
2.7 Hwait
3.1-weiity
4.2, city
2.7:query
4.9, city
16.2, play
6.2, game
7,,,8 Jami
4.0, city
Эта строка кода не печатает все действительные данные, присутствующие во входном файле.Допустимые данные в виде строки, начинающейся с числа, между которым стоит запятая, а затем имя.В противном случае недействительные записи следует игнорировать.При печати %hashforHighMagnitude;
пропускается несколько действительных записей, которые будут отображаться.Как я могу получить все действительные записи присутствующие %hashforHighMagnitude;
Я пытаюсь сделать это
open ( OF, "$inputFile") or die "Cant open input file: $!\n";
while ( $Line =<OF>) {
if($Line =~ /^\d+\.+\d*\s*,\s*\w+$/g)
{
( my $magnitude, my $place ) = split(/,/,$Line);
$hashforHighMagnitude{$place} = $magnitude;
$hash{$place}++;
}
else
{
next;
}
}
print %hashforHighMagnitude;
close(OF);
вывод должен быть
2.8, gitu
2.5, Has
4.2, city
4.9, city
16.2, play
6.2, game
4.0, city