From ff8d44e45ea6e7dac7a50a676378b2a537aee8e8 Mon Sep 17 00:00:00 2001 From: Daniel Friesel Date: Mon, 24 Nov 2014 13:14:59 +0100 Subject: Stations.pm: try normalized match before substring match --- lib/Travel/Status/DE/IRIS/Stations.pm | 21 ++++++++++++++++++++- 1 file changed, 20 insertions(+), 1 deletion(-) (limited to 'lib') diff --git a/lib/Travel/Status/DE/IRIS/Stations.pm b/lib/Travel/Status/DE/IRIS/Stations.pm index e221fa8..f0d289c 100644 --- a/lib/Travel/Status/DE/IRIS/Stations.pm +++ b/lib/Travel/Status/DE/IRIS/Stations.pm @@ -15100,9 +15100,22 @@ sub get_stations { return @stations; } +sub normalize { + my ($val) = @_; + + $val =~ s{Ä}{Ae}g; + $val =~ s{Ö}{Oe}g; + $val =~ s{Ü}{Ue}g; + $val =~ s{ä}{ae}g; + $val =~ s{ö}{oe}g; + $val =~ s{ß}{sz}g; + $val =~ s{ü}{ue}g; + + return $val; +} + sub get_station { my ( $name ) = @_; - my $ds100_match = firstval { $name eq $_->[0] } @stations; if ($ds100_match) { @@ -15122,6 +15135,12 @@ sub get_station_by_name { return ($actual_match); } + $nname = normalize($nname); + $actual_match = firstval { $nname eq normalize(lc($_->[1])) } @stations; + if ($actual_match) { + return $actual_match; + } + return ( grep { $_->[1] =~ m{$name}i } @stations ); } -- cgit v1.2.3