From 9d8ed1784fae4b21592db6fb2d5e82446fa31b49 Mon Sep 17 00:00:00 2001 From: "hieda_kyuko@hpr" <ugo58956@protonmail.com> Date: Mon, 12 May 2025 11:22:12 +0200 Subject: [PATCH] References all the way --- lib/App/Frame.pm | 12 ++++++------ lib/App/FrameUtils.pm | 32 ++++++++++++++++---------------- lib/App/MasterUtils.pm | 28 ++++++++++++++-------------- 3 files changed, 36 insertions(+), 36 deletions(-) diff --git a/lib/App/Frame.pm b/lib/App/Frame.pm index de9a8c0..6616ff2 100644 --- a/lib/App/Frame.pm +++ b/lib/App/Frame.pm @@ -13,12 +13,12 @@ sub debug_frame sub frame_info { - my %frame = %{ $_[0] }; - print "Frame for line $frame{'rosenmei'}:\n"; - print ". $frame{'eki_num'} stations\n"; - print ". " . scalar @{ $frame{'syubetsu'} } . " service types\n"; - print ". " . scalar @{ $frame{'dia'}{'kudari'} } . " down services\n"; - print ". " . scalar @{ $frame{'dia'}{'nobori'} } . " up services\n"; + my $frame = $_[0]; + print "Frame for line $frame->{'rosenmei'}:\n"; + print ". $frame->{'eki_num'} stations\n"; + print ". " . scalar @{ $frame->{'syubetsu'} } . " service types\n"; + print ". " . scalar @{ $frame->{'dia'}->{'kudari'} } . " down services\n"; + print ". " . scalar @{ $frame->{'dia'}->{'nobori'} } . " up services\n"; } 1; diff --git a/lib/App/FrameUtils.pm b/lib/App/FrameUtils.pm index 3915dde..7bbc620 100644 --- a/lib/App/FrameUtils.pm +++ b/lib/App/FrameUtils.pm @@ -14,26 +14,26 @@ use App::MasterUtils; sub get_syubetsu { - my %frame = %{ $_[0] }; + my $master = $_[0]; my $rosen_id = $_[1]; my $index = $_[2]; - my $rosen = MasterUtils::get_rosen_frame \%frame, $rosen_id; + my $rosen = MasterUtils::get_rosen_frame $master, $rosen_id; my @syubetsus = @{ $rosen->{'syubetsu'} }; if ($index >= scalar @syubetsus) { die "Index error"; } - return %{ $syubetsus[$index] }{'name'}; + return $syubetsus[$index]->{'name'}; } sub get_destination { - my %frame = %{ $_[0] }; + my $master = $_[0]; my $rosen_id = $_[1]; - my $rosen = MasterUtils::get_rosen_frame \%frame, $rosen_id; + my $rosen = MasterUtils::get_rosen_frame $master, $rosen_id; my @jikoku = @{ $_[2] }; my $offset = $_[3]; my $is_down = $_[4]; - return (MasterUtils::sta_from_index \%frame, $rosen_id, $is_down + return (MasterUtils::sta_from_index $master, $rosen_id, $is_down ? scalar $offset + @jikoku - 1 : $rosen->{'eki_num'} - $offset - @jikoku) ->{'ekimei'}; @@ -41,20 +41,20 @@ sub get_destination sub hassya_hyou { - my %frame = %{ $_[0] }; + my $master = $_[0]; my $eki = $_[1]; - my @rosens = MasterUtils::get_routes \%frame, $eki; + my @rosens = MasterUtils::get_routes $master, $eki; - my %sta_info = %{ MasterUtils::sta_from_id \%frame, $eki }; + my %sta_info = %{ MasterUtils::sta_from_id $master, $eki }; sub process_ressya_list { my $rosen_id = $_[0]; - my $rosen = MasterUtils::get_rosen_frame \%frame, $rosen_id; + my $rosen = MasterUtils::get_rosen_frame $master, $rosen_id; my @ressyas = @{ $_[1] }; my $is_down = $_[3]; - my $target_absolute = MasterUtils::get_eki_position \%frame, $rosen_id, $_[2]; + my $target_absolute = MasterUtils::get_eki_position $master, $rosen_id, $_[2]; my $target_relative = $is_down ? $target_absolute : $rosen->{'eki_num'} - $target_absolute - 1; @@ -72,12 +72,12 @@ sub hassya_hyou # Timestamp has no dep time (only arrival time for ex) if (!defined $time) { next; } # This service does not stop here - if (%ts{'mode'} != 1) { next; } + if ($ts{'mode'} != 1) { next; } # Format: time (tab) destination (tab) type (with eventual name) - my $syubetsu = get_syubetsu \%frame, $rosen_id, $data{'syubetsu'}; + my $syubetsu = get_syubetsu $master, $rosen_id, $data{'syubetsu'}; print ((Utils::format_time $time) . "\tfor " - . (get_destination \%frame, $rosen_id, \@jikoku, $target_relative, $is_down) + . (get_destination $master, $rosen_id, \@jikoku, $target_relative, $is_down) . "\t$syubetsu") ; if (defined $data{'meisyo'}) @@ -91,10 +91,10 @@ sub hassya_hyou foreach my $rosen_id (@rosens) { - my $rosenmei = MasterUtils::get_rosenmei \%frame, $rosen_id; + my $rosenmei = MasterUtils::get_rosenmei $master, $rosen_id; print "$rosenmei timetable for station $sta_info{'ekimei'}\n"; - my $dia = $frame{'rosen'}->{$rosen_id}->{'dia'}; + my $dia = $master->{'rosen'}->{$rosen_id}->{'dia'}; print "=================== Down ===================\n"; process_ressya_list $rosen_id, $dia->{'kudari'}, $eki, 1; diff --git a/lib/App/MasterUtils.pm b/lib/App/MasterUtils.pm index 45b93df..58df7c7 100644 --- a/lib/App/MasterUtils.pm +++ b/lib/App/MasterUtils.pm @@ -15,12 +15,12 @@ use Data::Printer; sub sta_from_id { - my %master = %{ $_[0] }; + my $master = $_[0]; my $id = $_[1]; if (!defined $id) { Log::e 'Please specify a station id.'; } - foreach my $k (keys %{ $master{'eki_index'} }) + foreach my $k (keys %{ $master->{'eki_index'} }) { - my $v = $master{'eki_index'}->{$k}; + my $v = $master->{'eki_index'}->{$k}; if ($k eq $id) { return $v }; } Log::e "Station id $id not found."; @@ -33,12 +33,12 @@ sub get_ekimei sub get_rosen_frame { - my %master = %{ $_[0] }; + my $master = $_[0]; my $rosen_id = $_[1]; if (!defined $rosen_id) { Log::e 'Please specify a route id.'; } - foreach my $rosen (keys %{ $master{'rosen'} }) + foreach my $rosen (keys %{ $master->{'rosen'} }) { - if ($rosen eq $rosen_id) { return $master{'rosen'}->{$rosen}; } + if ($rosen eq $rosen_id) { return $master->{'rosen'}->{$rosen}; } } Log::e "Route id $rosen_id not found."; } @@ -50,10 +50,10 @@ sub get_rosenmei sub get_eki_position { - my %master = %{ $_[0] }; + my $master = $_[0]; my $rosen_id = $_[1]; my $id = $_[2]; - my $rosen = get_rosen_frame \%master, $rosen_id; + my $rosen = get_rosen_frame $master, $rosen_id; my @ekis = @{ $rosen->{'eki'} }; return first { $ekis[$_] eq $id } 0..$#ekis; @@ -61,26 +61,26 @@ sub get_eki_position sub sta_from_index { - my %master = %{ $_[0] }; + my $master = $_[0]; my $rosen_id = $_[1]; my $index = $_[2]; if (!defined $rosen_id) { Log::e 'Please specify a route id.'; } if (!defined $index) { Log::e 'Please specify a station index.'; } - my $rosen = get_rosen_frame \%master, $rosen_id; - return sta_from_id \%master, @{ $rosen->{'eki'} }[$index]; + my $rosen = get_rosen_frame $master, $rosen_id; + return sta_from_id $master, @{ $rosen->{'eki'} }[$index]; } sub get_routes { - my %master = %{ $_[0] }; + my $master = $_[0]; my $id = $_[1]; my @res; if (!defined $id) { Log::e 'Please specify a station id to get its routes.'; } - my $eki_ref = sta_from_id \%master, $id; + my $eki_ref = sta_from_id $master, $id; - my %rosens = %{ $master{'rosen'} }; + my %rosens = %{ $master->{'rosen'} }; foreach my $k (keys %rosens) { my @ekis = @{ $rosens{$k}->{'eki'} }; -- GitLab