我們使用Perl Moo。如何更改屬性類型? (Perl Moo)
讓有定義一組屬性:
package C;
use Moo;
use Types::Standard qw(Str Int Num Maybe);
has 'x' => (is=>'rw', isa=>Str);
has 'y' => (is=>'rw', isa=>Int);
has 'z' => (is=>'rw', isa=>Int);
# here to insert make_optional() described below
1;
我想編寫一個程序,這將有可能[T]替換T代表的某些屬性。例如:make_optional(qw(x y))
應使x
Maybe[Str]
的類型和y
Maybe[Int]
的類型。
如何用Moo做到這一點?
就像你有很多問題一樣,我在問自己:**爲什麼**? – simbabque
@simbabque我們有一些(輕量級但功能不豐富的)ORM(高於DBI + SQL的級別)。現在我受命制定「業務對象」(高於ORM級別)。業務對象的某些類型(和「has」語句)是從DB列信息自動生成的。但我需要手動指定可以使用'undef'值(不同於NULL列)('Maybe'類型)的列列表,並以簡單的方式執行。 – porton
不管你使用DBIC時表格佈局如何變化,你不能編寫代碼生成器並運行它嗎? – simbabque