perlで匿名データ構造を必要とすることはありますか?は匿名データ構造を必要とします
#test.pl
(
"example_data" => 1
)
#main.pl
require "test.pl";
%some_data = (%some_data, $);
subsが行うように、1が最後にない場合、暗黙的にデータ構造を返す必要はありますか?
私がやっていることのより具体的な例がここにあります。データオブジェクトは、提供されているものよりもはるかに大きいことに注意してください。
#main.pl
use Schedular(
\%CONFIG,
do "default.pl"
);
#spawn new process for each schedule
Schedular::run_schedulue("some_schedule");
Schedular::run_schedulue("some_other_schedule");
#Schedular.pm
package Schedular;
our %schedules = undef;
our %config = undef;
sub import{
%config= shift @_;
%schedules = shift @_;
}
sub run_schedule{
#Run each event in schedule
}
sub do_something{
print("Hello World");
}
#default.pl
(
"some_schedule"=>[
sub {
#Event
Schedular::do_something();
},
sub {
#Event 2
}
],
"some_other_schedule"=>[
sub {
#Event 3
},
]
)
1;
主な目的は、私は簡単にスクリプトロジックのテンプレート/レシピなどのデータオブジェクトを使用して、新しいPerlスクリプトを生成し、Schedularモジュールへの実装を残すことができるようにしたいです。これにより、新しいイベントをスケジュールにプッシュし、そのスケジュールを新しいスケジュールに追加することも容易にできます。
'$ some_data = do" test.pl "; # - > {foo => 1} ' –
ありがとう、ちょうど私が探していたもの – TheAschr
' .pl'ファイルに 'do'(' require'ではなく)を使います。 ( 'require'はモジュールのためです。)そして、本当の値を返すようにしてください。 – ikegami