Perl 将方法添加到生成的结果类
我使用Perl 将方法添加到生成的结果类,perl,dbix-class,Perl,Dbix Class,我使用DBIx::Class::Schema::Loader从数据库模式生成(并不断重新生成)结果类 是否有一种idomatic方法向生成的类添加方法 我目前所做的是在使用结果类的代码附近定义其他方法: package Some::Package::Using::Result::Classes; use My::Schema::Result::Hello; ... 1; package My::Schema::Result::Hello; sub str { my $self = sh
DBIx::Class::Schema::Loader
从数据库模式生成(并不断重新生成)结果类
是否有一种idomatic方法向生成的类添加方法
我目前所做的是在使用结果类的代码附近定义其他方法:
package Some::Package::Using::Result::Classes;
use My::Schema::Result::Hello;
...
1;
package My::Schema::Result::Hello;
sub str {
my $self = shift;
sprintf("Hello: %s, %d", $self->name, $self->age);
}
1;
(如您所见,我正在尝试添加一个类似于函数的
toString()
-like函数。)我不知道这是否惯用,但它更紧凑:
*My::Schema::Result::Hello::str = sub
my $self = shift;
sprintf("Hello: %s, %d", $self->name, $self->age);
};
如果查看生成的结果类的顶部,您将看到此注释
# Created by DBIx::Class::Schema::Loader
# DO NOT MODIFY THE FIRST PART OF THIS FILE
注意,它说您不应该修改文件的“第一部分”
在文件的底部,您将看到这个
# Created by DBIx::Class::Schema::Loader v0.07039 @ 2014-01-30 20:13:57
# DO NOT MODIFY THIS OR ANYTHING ABOVE! md5sum:3eYA3YhJdL90HQRfNN07EA
# You can replace this text with custom code or comments, and it will be preserved on regeneration
因此,只要将结果类文件放在包含MD5哈希的行下,就可以将任何代码添加到结果类文件中。当您重新生成类时,您放在那里的任何内容都将保留在那里。谢谢!我不知道那个语法。那是怎么回事?*?这是一个