Я написал PERL модуль:Невозможно вызвать метод «разъединение» без package..Perl
package sql;
use strict;
use XML::Simple;
use DBI;
use DBD::mysql;
require Exporter;
our @ISA = qw(Exporter);
our @EXPORT_OK = qw(DBImport DataFill);
our @EXPORT = qw(DBImport DataFill);
our $dbh;
sub DBConnect() {
my $platform = "mysql";
my $database = "databasename";
my $host = "localhost";
my $user = "user";
my $pw = "password";
my $dsn = "dbi:mysql:$database:localhost";
$dbh = DBI->connect($dsn, $user, $pw);
$dbh->do('SET NAMES utf8');
return $dbh;
}
sub Query($) {
my $sth = $dbh->prepare(shift);
$sth->execute;
while (my $ref = $sth->fetchrow_hashref()) {
print $ref->{'email'};
}
$sth->finish();
}
BEGIN{
$dbh = &DBConnect();
}
END{
$dbh->disconnect();
}
1;
и я пытался использовать:
#!/usr/bin/perl
use strict;
use CGI qw/:standard/;
use CGI::Carp qw/fatalsToBrowser warningsToBrowser/;
use sql;
&Query("SELECT * FROM users");
, но это не работает.
сообщение об ошибке: Не определено подпрограммой & главная :: Query вызывается в /var/www/domains/gabordx.tauri.hu/www/main.pl линии 7. -> "& Query (" SELECT * FROM пользователей ") ;»
В чем проблема с?
Спасибо!
Обратите внимание, что имена всех нижних регистров [обычно зарезервированы для прагм.] (Http://perldoc.perl.org/perlmodlib.html#Guidelines-for-Module-Creation). Кроме того, вам не нужно явно импортировать DBD :: mysql, так как 'DBI-> connect()' будет загружать правильный драйвер для вас. – pilcrow