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

Ame*_*mey 3 perl if-statement input

我接受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)

请帮忙

Nat*_*ate 5

第一个$db作用于"then"块,第二个$db作用于"else"块.你需要在$db之前声明var if.

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