Я хочу написать обертку DBI, предоставить выбор / вставить / обновить / удалить, и пользователи могут выбирать, какую базу данных использовать.Я очень плохо знаком с Perl OO, я не знаю, что я делаю правильно или нет?Не могли бы вы рассмотреть это и сказать мне?И любые советы приветствуются.
Мой каталог оболочки выглядит следующим образом:
MyDBI.pm
MyDBI/SQLite.pm
MyDBI/MySQL.pm
MyDBI.pm:
package MyDBI;
sub new {
shift; # discard parent class
my $database=shift || 'MySQL';
eval {
require "MyDBI/$database.pm";
} or die "$database not found\n";
my $self="MyDBI::$database"->new;
bless($self,"MyDBI::$database");
return $self;
}
sub insert { print "parent insert"; } # children will override it
MyDBI / MySQL.pm:
package MyDBI::MySQL;
require MyDBI;
@ISA=qw(MyDBI);
use DBI;use DBD::mysql;
sub new { #...} # not special
sub insert { print "mysql insert"; }
пользовательский скрипт:
use MyDBI;
my $dbi=MyDBI->new('SQLite');
$dbi->insert;
Это будет работать?MyDBI :: new отличается от perltoot, я не совсем понимаю это сейчас, просто скопируйте и смоделируйте его.
Спасибо.