NAME
Travel::Status::DE::IRIS::Stations - Station name to station code mapping
SYNOPSIS
use Travel::Status::DE::IRIS::Stations;
my $name = 'Essen Hbf';
my @stations = Travel::Status::DE::IRIS::Stations::get_station_by_name(
$name);
if (@stations < 1) {
# no matching stations
}
elsif (@stations > 1) {
# too many matches
}
else {
printf("Input '%s' matched station code %s (as '%s')\n",
$name, @{$stations[0]});
}
VERSION
version 0.00
DESCRIPTION
This module contains a mapping of DeutscheBahn station names to station codes. A station name is a (perhaps slightly abbreviated) string naming a particular station; a station code is a two to five character denoting a station for the IRIS web service.
Example station names (code in parentheses) are: "Essen HBf" (EE), "Aachen Schanz" (KASZ), "Do Universität" (EDUV).
Note: Station codes may contain whitespace.
METHODS
- Travel::Status::DE::IRIS::get_stations
-
Returns a list of [station code, station name] listrefs lexically sorted by station name.
- Travel::Status::DE::IRIS::get_station($in)
-
Returns a list of [station code, station name] listrefs matching $in.
If a $in is a valid station code, only one element ([$in, related name]) is returned. Otherwise, it is passed to get_station_by_name($in) (see below).
Note that station codes matching is case sensitive and must be exact.
- Travel::Status::DE::IRIS::get_station_by_name($name)
-
Returns a list of [station code, station name] listrefs where the station name matches $name.
Matching happens in two steps: If a case-insensitive exact match exists, only this one is returned. Otherwise, all stations whose name contains $name as a substring (also case-insensitive) are returned.
This two-step behaviour makes sure that not prefix-free stations can still be matched directly. For instance, both "Essen-Steele" and "Essen-Steele Ost" are valid station names, but "essen-steele" will only return "Essen-Steele".
DIAGNOSTICS
None.
DEPENDENCIES
List::MoreUtils(3pm)
BUGS AND LIMITATIONS
There is no support for intelligent whitespaces (to also match "-" and similar) yet.
SEE ALSO
Travel::Status::DE::IRIS(3pm).
AUTHOR
Copyright (C) 2014 by Daniel Friesel <derf@finalrewind.org>
LICENSE
This module is licensed under the same terms as Perl itself.
EOF