diff options
-rw-r--r-- | lib/Travel/Status/DE/IRIS/Stations.pm | 21 |
1 files changed, 20 insertions, 1 deletions
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 ); } |