簡體   English   中英

如何在Perl中連接到數據庫

[英]How to connect to a database in Perl

我是Perl和Eclipse的新手,我正在嘗試將Perl腳本連接到數據庫,但它給我一個錯誤:“文件不存在”

#!/usr/bin/perl

use XML::Simple;
use DBI;
use strict;
use Data::Dumper;
use constant {false=>0,true=>1};

my ( $exec_dir, $exec_file ) =
( Win32::GetFullPathName($0) =~ /^(.*)\\([^\\]*)$/ );

my $parmfil = $exec_dir . "\\parms\\parms.xml";
my $p_ref    = XMLin($parmfil);

my ($dsn,$dbusr,$dbpwd) = ( $p_ref->{"DSN"}
                            ,$p_ref->{"db_user"}
                                ,$p_ref->{"db_pwd"}
);
my $dbh = DBI->connect(  "dbi:ODBC:$dsn", $dbusr, $dbpwd )
        or die "SDM Database connect error - $DBI::errstr\n";
$dbh->{LongReadLen} = 1024 * 1024;

if (true)
{
    print "true\n";
}

請幫幫我。

我更傾向於信任的Perl文件超過你的存在保證它

您應該打印$parmfil的值,看看它是否是您期望的值。

您也可以添加此

print "\$parmfil %s exist\n", -f $parmfil ? 'DOES' : 'DOESN'T';

獲得“第二意見”。

這看起來不對

my ( $exec_dir, $exec_file ) =
( Win32::GetFullPathName($0) =~ /^(.*)\\([^\\]*)$/ );

列表連接中的GetFullPathName將根據您的需要返回路徑名和文件名,但是常規表達式匹配將改變它,看不到它所需要的。 如果要操作路徑,請在返回值后最好進行操作。

試試這個代碼:

use strict;
use FindBin qw($Bin);

my $parmfil = $Bin . "/parms/parms.xml";
my $p_ref    = XMLin($parmfil);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM