Perl 如何使用散列从数据文件将数据库名称映射到服务器名称?

Perl 如何使用散列从数据文件将数据库名称映射到服务器名称?,perl,Perl,上面的代码检索文件名和数据库名。我希望数据库名称映射到服务器名称。我该怎么做 我的输出以某种顺序分别检索所有数据库名称和服务器名称。我想使用散列来存储数据库名和服务器名,必须保留顺序。我该怎么做 执行此操作的主要需要是确定哪个服务器使用哪个数据库。您的意思是: ewrerfSvr //(extracted--- Rate=rpm ID=123 RATE=45 ADDR=retriveBal Grocer="-r -e ${MAIN_ROOT}/logs/stderr

上面的代码检索文件名和数据库名。我希望数据库名称映射到服务器名称。我该怎么做

我的输出以某种顺序分别检索所有数据库名称和服务器名称。我想使用散列来存储数据库名和服务器名,必须保留顺序。我该怎么做


执行此操作的主要需要是确定哪个服务器使用哪个数据库。

您的意思是:

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}"
my%映射;
...
而。。。。
$mapping{$server\u name}=$database\u name;

你是说:

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}"
my%映射;
...
而。。。。
$mapping{$server\u name}=$database\u name;

你好,Sreeja,我看到你参与SO已经有一段时间了。到目前为止,你应该意识到这一点。请付出一些努力,你不能总是依赖其他人来编辑你的草率。你问了很多,但很少回答-这没关系,但为了帮助提高SO对每个人的有用性,你应该选择一个被接受的答案单击空心复选标记✓ 在任何答案的左边。对不起。我不知道。我接受nw。更新该数据可能需要一段时间。@daxim,Sreeja没有答案可能是因为他是一名“编程实习生”你好,Sreeja,我看到你参与SO已经有一段时间了。到目前为止,你应该意识到这一点。请付出一些努力,你不能总是依赖其他人来编辑你的草率。你问了很多,但很少回答-这没关系,但为了帮助提高SO对每个人的有用性,你应该选择一个被cli接受的答案取消空心复选标记✓ 在任何答案的左边。抱歉..我不知道..我接受nw..可能需要一段时间才能更新该统计。@daxim,Sreeja没有答案可能是因为他是一名“编程实习生”,我可以添加一个条件,如果svr和db匹配(只有当两者都匹配时)仅获取这些…如何实现1.将我的$server\u名称和$database\u名称从if作用域拉到while作用域。2.将elseif更改为if(因为有两个正则表达式都匹配的行)3.如果设置了$server_name和$database_name,则将它们存储在您的%映射中,并在映射后将其清空。我可以添加一个条件,即如果它具有svr和db匹配(仅当两者都匹配时),则仅获取这些值…如何实现该条件1.将我的$server_name和$database_name从if范围拉到while范围。2.将elseif更改为if(因为有两个正则表达式都匹配的行)3.如果设置了$server_name和$database_name,则将它们存储在%映射中,然后将它们清空
my %mapping;
...
while (<FILE>) { ....
$mapping{$server_name} = $database_name;