複数のユーザーハッシュに汎用ハッシュ(マクロ)を組み込む必要があります。実際には、これらはすべてPerlでHoH/HoLとして書かれた仕様です。ローカル変数をperlのグローバルハッシュに組み込む
私は 'user'仕様でマクロ仕様を独自の変更で採用したいと思います。以下の例では、変数 '$ v_Y'は、user1とuser2に異なる値を持つ必要があります。
私は以下のコードは正確にはコードではありませんが、問題を説明するためのものです。 macro_specが既に作成されているので、$ v_Yの複数の値を持つことができません。メルポメネ同様
## this is in a package
my $MACRO_SPEC = {
mkeyX => "value_X",
mkeyY => $v_Y,
};
#this is USER1 package,
$v_Y = "U1_VALUE_X";
# use MACRO_SPEC
my $USER1 = (
u1key1 => "u1value1", u1macrokey => $MACRO_SPEC, # need macro to interpolate 'local' $v_Y
);
#this is USER2 package,
$v_Y = "U2_VALUE_X";
# use MACRO_SPEC
my $USER2 = (
u2key1 => "u2value1",
u2macrokey => $MACRO_SPEC, # need macro to interpolate 'local' $v_Y
);
#this is how USER1 should look after the interpolation
my $USER1 = (
u1key1 => "u1value1",
u1macrokey => {
mkeyX => "value_X",
mkeyY => "U1_VALUE_X"
},
);
#this is how USER2 should look after the interpolation
my $USER2 = (
u2key1 => "u2value1",
u1macrokey => {
mkeyX => "value_X",
mkeyY => "U2_VALUE_X"
},
);
「マクロ」を機能化してみませんか? – melpomene
あなたは '$ USER1'と' $ USER2'を後で見えるようにしてください。あなたはあなたの質問を編集することができます。また、中括弧 '{}'の代わりにかっこ '()'を使って定義していることに注意してください。間違っています。 – simbabque