私はこの比較して検証したデータ構造
[
{ foo => { "<=" => 75 } },
{ bar => { "==" => 20 } },
{ baz => { ">=" => 5 } },
]
などの条件を表現するハッシュリファレンスの配列リファレンスに対してこの1
{ foo => 65, bar => 20, baz => 15 }
のようなハッシュリファレンスをチェックし、すべての条件が満たされた場合には、真の値を返すことがあります。
2つのデータ構造のどちらもあらかじめ決定されていません。 1つは、データベース内の文字列を解析し、もう1つはユーザー入力を解析することによって構築されます。上記の場合
最初のハッシュリファレンスでfooは= 60 <ではないので、私は、trueを返しますが、私は
[
{ foo => { "<=" => 60 } },
{ bar => { "==" => 20 } },
{ baz => { ">=" => 5 } },
]
に対してハッシュリファレンスをチェックする場合、私はfalseを返します
質問は:それを行うための最善の戦略は何ですか?
私は< =、> =、5事前に構築された異なるsubrefs(>のためのケースごとに、<の間で適切なものと照合evalの- を考えています
と==)
私は間違った道を完全に下っていますか?そうでない場合は、最高、評価関数、または事前構築された関数は何ですか?
私はParams :: Validateを調べましたが、オーバーヘッドが大きくなることが懸念され、とにかくコールバックを作成する必要があります。
重複したキーがある場合にのみ、単一のハッシュ・リファレンスの配列が役立ちます。例えば。 '' {{foo => ...}、{foo => ...}] '重複した鍵がないと思うので、これを冗長にするとハッシュを使い、配列をスキップするだけです。 – TLP