Я пытаюсь проанализировать файл CSV в Perl, но не совсем понимаю примеры, которые я нашел в Интернете.Может ли кто-нибудь объяснить мне этот пример?
#!/usr/bin/perl
use strict;
use warnings;
use Text::CSV;
my $file = 'dhcp.csv';
my $csv = Text::CSV->new();
open (CSV, "<", $file) or die $!;
while (<CSV>) {
next if ($. == 1);
if ($csv->parse($_)) {
my @columns = $csv->fields();
print "Name: $columns[0]\n\tContact: $columns[4]\n";
} else {
my $err = $csv->error_input;
print "Failed to parse line: $err";
}
}
close CSV;
Когда я запускаю его, я получаю Failed to parse line
.Что означает $.
?И $_
?
Моя цель - найти строку, где находится имя компьютера, которое я ищу.После этого я могу найти соответствующий MAC-адрес.Я надеюсь, что это понятно, спасибо.
РЕДАКТИРОВАТЬ :
Мой CSV-файл выглядит так:
172.30.72.22,DEC-16.rec.local,001676b755d6,Bart SIMPSONS,Ordinateur de bureau,DEC/DECVA,002,SR2 0.12,,Accès complet,N/D,Aucun
172.30.72.23,DEC-20.rec.local,001688b7bfdc,Larry Wall,Ordinateur de bureau,DEC/DECVA,003,?,,Accès complet,N/D,Aucun
Поле № 2имя хоста, я хочу разрешить поле № 3 (MAC-адрес) в поле № 2.
РЕДАКТИРОВАТЬ n ° 2 :
На самом деле, неМне нужно разобрать файл CSV для моей цели.Я нашел решение для bash, достаточно быстрое для моего приложения.
my $macAdd = `cat dhcp.csv | grep {computerName} | cut -d ',' -f 5`
Готово!
Спасибо за вашу помощь, однажды мне придется проанализировать CSV-файл, конечно.
3-е редактирование: не знаю, кто редактировал мой пост и тему вопроса, но это совсем не так!