From 38565092afcfafbd65fe0a76bd302c454c40c608 Mon Sep 17 00:00:00 2001
From: Daniel Friesel <derf@finalrewind.org>
Date: Tue, 22 Sep 2015 16:45:52 +0200
Subject: [PATCH] get_(active_)service: return hashrefs after all, not hashes

---
 bin/hafas-m                   |  6 +++---
 lib/Travel/Status/DE/HAFAS.pm | 21 ++++++++++-----------
 2 files changed, 13 insertions(+), 14 deletions(-)

diff --git a/bin/hafas-m b/bin/hafas-m
index 5476cb5..e667a66 100755
--- a/bin/hafas-m
+++ b/bin/hafas-m
@@ -91,9 +91,9 @@ sub parse_mot_options {
 			if ( not $hafas_url ) {
 				$service //= 'DB';
 			}
-			my %desc = Travel::Status::DE::HAFAS::get_service($service);
-			if (%desc) {
-				my @mots = @{ $desc{productbits} };
+			my $desc = Travel::Status::DE::HAFAS::get_service($service);
+			if ($desc) {
+				my @mots = @{ $desc->{productbits} };
 				@mots = grep { $_ ne 'x' } @mots;
 				@mots = uniq @mots;
 				@mots = sort @mots;
diff --git a/lib/Travel/Status/DE/HAFAS.pm b/lib/Travel/Status/DE/HAFAS.pm
index 979a538..f093baf 100644
--- a/lib/Travel/Status/DE/HAFAS.pm
+++ b/lib/Travel/Status/DE/HAFAS.pm
@@ -349,7 +349,7 @@ sub get_service {
 	my ($service) = @_;
 
 	if ( defined $service and exists $hafas_instance{$service} ) {
-		return %{ $hafas_instance{$service} };
+		return $hafas_instance{$service};
 	}
 	return;
 }
@@ -358,7 +358,7 @@ sub get_active_service {
 	my ($self) = @_;
 
 	if ( defined $self->{active_service} ) {
-		return %{ $hafas_instance{ $self->{active_service} } };
+		return $hafas_instance{ $self->{active_service} };
 	}
 	return;
 }
@@ -499,7 +499,7 @@ undef.
 
 =item $status->similar_stops
 
-Returns a list of hashes describing stops whose name is similar to the one
+Returns a list of hashrefs describing stops whose name is similar to the one
 requested in the constructor's B<station> parameter. Returns nothing if
 the active service does not support this feature.
 This is most useful if B<errcode> returns 'H730', which means that the
@@ -510,11 +510,11 @@ on the return value.
 
 =item $status->get_active_service
 
-Returns a hash describing the active service when a service is active and
-nothing otherwise. The hash contains the keys B<url> (URL to the station board
-service), B<stopfinder> (URL to the stopfinder service, if supported), B<name>,
-and B<productbits> (arrayref describing the supported modes of transport, may
-contain duplicates).
+Returns a hashref describing the active service when a service is active and
+nothing otherwise. The hashref contains the keys B<url> (URL to the station
+board service), B<stopfinder> (URL to the stopfinder service, if supported),
+B<name>, and B<productbits> (arrayref describing the supported modes of
+transport, may contain duplicates).
 
 =item Travel::Status::DE::HAFAS::get_services()
 
@@ -525,9 +525,8 @@ the constructor's B<service> parameter.
 
 =item Travel::Status::DE::HAFAS::get_service(I<$service>)
 
-Returns a hash describing the service I<$service>. Returns nothing
-if I<$service> is not supported. See
-B<get_active_service> for the hash layout.
+Returns a hashref describing the service I<$service>. Returns nothing if
+I<$service> is not supported. See B<get_active_service> for the hashref layout.
 
 =back
 
-- 
GitLab