jestem baardzo początkujący w perlu, a mam następujące zadanie.
Są dwa pliki - jeden, to lista numerów i nazw oddzielona tabami, po jednym takim zestawie w linii. Drugi, to pewien log w postaci XML’a, który zawiera w jednej z gałęzi numer (znajdujący się w pierwszej kolumnie pierwszego pliku).
Potrzebuję napisać skrypt, który będzie porównywał oba pliki, i jeśli w XML’u znajdzie numerek, ma przypisać do niego nazwę z pierwszego pliku.
Problem w tym, że nie wiem, w jaki sposób się za to zabrać - czy przypisać pierwszy plik do tabeli, następnie ją porównywać z drugim, czy linijka po linijce?
Założenie początkowe jest takie, że w XML’u wystąpi ten numer tylko raz, w gałęzi np. xxx.
Pierwszy plik ma mniej więcej taką postać:
001 nazwa1
002 nazwa2
003 nazwa3
Czyli muszę na podstawie numerka z XML’a wypisać nazwę.
Co do realizacji to zależy od wielkości pierwszego pliku, jeżeli jet mały to wczytałbym go do hasha. Możesz tez użyć jakiegoś parsera XML z CPAN, na pewno jest to pewniejsze rozwiązanie niż ręczna zabawa regexpami.
Aaa jak masz do czynienia od wczoraj to lepiej poświęć więcej czasu na naukę Perla. Jak poduczysz się Perla to nie będziesz miał problemów z napisaniem takiego skryptu, proste i brutalne.
Heh, uczę się, uczę, ale jutro właściwie powinienem mieć takie coś chodzące:/ I jak na razie, to udało mi się porównywać podobne pliki na zasadzie linii, a to 2 różne formaty:/
Ja zrobiłbym to tak, że pierwszy plik wczytuje do hasha. Drugi plik możesz potraktować XML::Simple, no ewentualnie możesz ręcznie regexpami, żeby skrypt był bardziej przenośny (bez zależności). Reszta jest prosta o ile zna się Perla.