From: Dobrica Pavlinusic Date: Sat, 23 Oct 2010 11:31:36 +0000 (+0200) Subject: cleanup field extraction X-Git-Url: http://git.rot13.org/?p=Biblio-Z3950.git;a=commitdiff_plain;h=353b9a307a11fab796e6ab1124d1d5394e5cbaac cleanup field extraction --- diff --git a/Aleph.pm b/Aleph.pm index 0ed5481..4e25c57 100644 --- a/Aleph.pm +++ b/Aleph.pm @@ -106,9 +106,13 @@ diag "in MARC format"; } +our ( $hash, $marc ); + sub next_marc { my ($self,$format) = @_; + $format ||= 'marc'; + my $mech = $self->{mech} || die "no mech?"; print $mech->content; @@ -119,10 +123,10 @@ print $mech->content; diag "parse $nr"; - my $marc = MARC::Record->new; + $marc = MARC::Record->new; + $hash = {}; my $html = $mech->content; - my $hash; sub field { my ( $f, $v ) = @_; @@ -139,13 +143,13 @@ diag "sf = ", dump(@sf); } $html =~ s|\s*]*>(.+?)\s*(.+?)|field($1,$2)|ges; - diag dump($hash); + diag "# hash ",dump($hash); my $id = $hash->{SYS} || die "no SYS"; my $path = "marc/$id.$format"; - open(my $out, '>:utf8', $path); + open(my $out, '>:utf8', $path) || die "$path: $!"; print $out $marc->as_usmarc; close($out);