小编Ame*_*mey的帖子

连接数据库Perl

我使用以下代码连接到mysql数据库:

my $dbh = DBI->connect("DBI:mysql:test:localhost", $user, $pass)
    or die $DBI::errstr;
my $sqlQuery  = $dbh->prepare($query) 
    or die "Can't prepare $query: $dbh->errstr\n"; 
my $rv = $sqlQuery->execute 
    or die "can't execute the query: $sqlQuery->errstr";

while (my @row= $sqlQuery->fetchrow_array()) {
    # do something;
}
Run Code Online (Sandbox Code Playgroud)

我的疑问是:直到我的应用程序与小型数据库交互时才会好.但是,当我将此应用程序移动到数据库大小可能达到100 GB的实时环境时,此代码可能会导致性能问题.实际上我要问的是,在线 -

@row= $sqlQuery->fetchrow_array();
Run Code Online (Sandbox Code Playgroud)

将Perl复制整个表内容并将其转储到变量中.如果是,是否会对我的应用程序以及数据库服务器造成重大性能问题?

mysql database perl performance

5
推荐指数
1
解决办法
197
查看次数

从另一个字符串-Perl中提取所需的子字符串

我想从Perl中的一行中提取子字符串.让我解释一下这个例子:

fhjgfghjk3456mm   735373653736
icasd 666666666666
111111111111
Run Code Online (Sandbox Code Playgroud)

在上面的行中,我只想提取12位数字.我尝试使用split功能:

my @cc = split(/[0-9]{12}/,$line);
print @cc;
Run Code Online (Sandbox Code Playgroud)

但它的作用是移除字符串的匹配部分并将残留物存储在其中@cc.我想要打印匹配模式的部分.我怎么样?

string perl grep split

4
推荐指数
1
解决办法
2万
查看次数

Perl:在if-else语句中接受用户输入

我接受If-Else块中的用户输入.检查代码:

if ( $svr == 1 ) {
    print "Enter Datbase Name\n";
    my $db = <>;
    chomp($db);
} elsif ( $svr == 2 ) {
    print "Enter Data Source Name (DSN)\n";
    my $db = <>;
    chomp($db);
}
Run Code Online (Sandbox Code Playgroud)

当我在后面的语句中引用$ db时,我收到以下错误:

"使用未初始化的值$ db"

这是我使用导致错误的$ db的语句:

my $data_source = 'DBI:mysql:' . $db . ':' . $host;
Run Code Online (Sandbox Code Playgroud)

请帮忙

perl if-statement input

3
推荐指数
1
解决办法
881
查看次数

标签 统计

perl ×3

database ×1

grep ×1

if-statement ×1

input ×1

mysql ×1

performance ×1

split ×1

string ×1