【Perl】サブルーチンの呼び出しについて
package Indicate_TEMP; use Exporter 'import'; our @EXPORT = qw/get_date_temp get_api_data return_temp print_temp/; our $VERSION = "0.0.1"; use LWP::UserAgent; use strict; use warnings; use utf8; use Encode; use JSON::XS 'decode_json'; use Data::Dumper; use DateTime; #API Key、URLの代入。 my $date = $ARGV[0]; &get_date_temp($date); sub get_date_temp{ my ($date) = @_; if (!$date){ my $dt = DateTime->now(time_zone => 'Asia/Tokyo'); $dt->add( days => 1 ); $date = $dt->ymd('-'); } unless ($date =~ /\d{4}-\d{2}-\d{2}/){ print "Please enter the correct date format.\n"; return undef; } my $api_data = &get_api_data; my $temp_ref = &return_temp($api_data, $date); &print_temp($temp_ref, $date); return 1; }
サブルーチンの中でサブルーチンを呼び出すのは可能だが、サブルーチンの中でサブルーチンを定義するとコードが読みづらくなるので、避けましょうというお話。