В вашем URL-средстве доступа вы проверяете, был ли передан параметр этому методу. Но вы ничего не передаете, поэтому средство доступа ничего не будет делать, кроме как вызовом _Url_accessor (). Возможно, вам следует сначала вызвать _Url_accessor, а затем изменить результат:
sub Url {
my $self = shift;
# Was there a param passed in?
if ( @_ ) {
# Do you really want to modify it here?
return $self->_Url_accessor(@_);
}
else {
my $url = $self->_Url_accessor();
# mangle result here:
$url = 'aaaaaaaaa';
return $url;
}
}
Если вы хотите изменить URL-адрес еще до того, как он попадет в базу данных, я думаю, вы должны предоставить normalize_column_values в вашем классе, и он будет вызываться каждый раз, когда вставка сделана.