Как мне сопоставить имя базы данных с именем сервера из файла данных, используя хэш? - PullRequest
1 голос
/ 05 августа 2010
#!usr/bin/perl
use strict;
use warnings;
my $file_name = "rem.txt";
open(FILE, $file_name);
while (<FILE>) {
    my $line = $_;
    if ($line =~ m/(\w*Svr)\b/) {
        my $server_name;
        $server_name = $1;
        my @arr_servername = $server_name;
        print "@arr_servername\n";
        #print "$server_name\n";
    } elsif ($line =~ m/-[dD]\s*\$\{(.*?)_NAME/) {
        my $database_name;
        $database_name = $1;
        my @arr_dbname = $database_name;
        print "\n-----------------\n";
        print "@arr_dbname\n";
        print "\n----------------\n";
        #print "....$database_name\n";
    }
}

REM.TXT

ewrerfSvr      //(extracted---
 Rate=rpm 
 ID=123 
 RATE=45 
 ADDR=retriveBal 
 Grocer="-r -e ${MAIN_ROOT}/logs/stderr -o ${MAIN_ROOT}/logs/stdout -A --" 
freedonSvr 
 BALFSvr   //to be extracted 
 Rate=rpm1 
 ID=12323 
 RATE=45etf 
 ADDR=retriveBal 
 Grocer="-r -e ${MAIN_ROOT}/logs/stderr -o ${MAIN_ROOT}/logs/stdout -A --" 
freedonSvr -D ${REV_AccountBalance_NAME}"// extracted
Refer
Rate =rpm
ID =234
ADDR = calbal
Grocer="-r -e ${MAIN_ROOT}/logs/stderr -o ${MAIN_ROOT}/logs/stdout -A --" -D ${REV_MAx_NAME}"
REstSvr
Grocer="-r -e ${MAIN_ROOT}/logs/stderr -o ${MAIN_ROOT}/logs/stdout -A --" 
freedonSvr -D ${REV_MinBalance_NAME}"

Приведенный выше код извлекает имя файла и имя базы данных.Я хочу, чтобы имя базы данных было сопоставлено с именем сервера.Как мне это сделать?

Мой вывод извлекает все имена баз данных отдельно в некотором порядке и имя сервера в другом порядке.Я хочу использовать хеш для хранения имени базы данных и имени сервера, порядок должен быть сохранен.Как мне это сделать?

Основная задача для этого - определить, какой сервер использует какую базу данных.

1 Ответ

1 голос
/ 05 августа 2010

Вы имеете в виду что-то вроде:

my %mapping;
...
while (<FILE>) { ....
$mapping{$server_name} = $database_name;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...