--- trunk/all2xml.pl 2003/11/22 22:04:05 164 +++ trunk/all2xml.pl 2003/11/23 15:42:16 170 @@ -61,6 +61,8 @@ 'feed' => 'feed' ); +my $cache; # for cacheing + sub data2xml { use xmlify; @@ -90,7 +92,15 @@ return $va <=> $vb; } - foreach my $field (sort by_order keys %{$config->{indexer}}) { + my @sorted_tags; + if ($cache->{tags_by_order}->{$type}) { + @sorted_tags = @{$cache->{tags_by_order}->{$type}}; + } else { + @sorted_tags = sort by_order keys %{$config->{indexer}}; + $cache->{tags_by_order}->{$type} = \@sorted_tags; + } + + foreach my $field (@sorted_tags) { $field=x($field); $field_usage{$field}++; @@ -167,8 +177,9 @@ # filter="name" ; filter this field through # filter/[name].pm my $filter = $x->{filter}; - if ($filter) { + if ($filter && !$cache->{filter_loaded}->{$filter}) { require "filter/".$filter.".pm"; + $cache->{filter_loaded}->{$filter}++; } # type="swish" ; field for swish if ($swish) {