の日付スタンプを受け入れ、人が読める文字列(dd Mon yyyy hh:mm:ss)を返す、多くの日付時刻関連属性を持つモジュールがいくつかあります。サブクラスの複数の属性を処理するために、ベースクラスのMooseで属性修飾子を使用できますか?
package ModuleOne;
use Moose;
extends 'ModuleBase';
has date_attr_one => (...);
、その後...
package ModuleTwo;
use Moose;
extends 'ModuleBase';
has date_attr_mouse => (...);
現在 何のパラメータはありません場合は'03の形式で日付を返すように、私は「周りの」属性修飾子を使用しています働いていると2012年5月12:33:42 'です。 パラメータが'03 May 2012 12:33:42 'の形式である場合、これを日付スタンプとして設定します。
だから、ModuleOneで、そこに次のようになります。事のaround 'date_attr_one' => sub { ... }
同じタイプの第二のモジュールで発生します。
has date_attr_one => (...);
が続きます。
私が抱えている問題は、これを実行する複数のモジュールがあり、それぞれが 'around'修飾子と同じ複製コードを使用して であるということです。基本クラスを拡張しているすべてのモジュールがその修飾子を使用できるように、その修飾子をベースクラスに移動したいと思います。
around qr/date_attr_one/ => sub { ... }
私は実行されませんそこにいくつかのprint文を入れて(ベースクラスで):私は、正規表現などを使用して、基本クラスにそれを入れてみました。ロールはそのようなことを許さない。
モディファイアの周りをベースクラスに移動する方法はありますか?ベースクラスを拡張するすべてのモジュールは、そのモディファイアで各モデルの属性が異なる名前を使用できますか?
したがって、上記の例のように、基本クラスのaround属性修飾子は、$ self-> date_attr_oneおよび$ self-> date_attr_mouseなどを処理する必要があります。
してください"datestamp"を定義します。 – ikegami
いつも '03 May 2012 12:33:42'として返すのであれば、なぜ"日付スタンプ "として保存したいのですか? – ikegami
サードパーティのapiはそれをdatestamp(unixタイムスタンプ)として保存します。表示される内容:perl -e 'print time()' – jmcneirney