【发布时间】:2017-04-26 04:43:12
【问题描述】:
我对 Perl 很陌生。
假设命令的输出如下所示,
AMQ8409: Display Queue details.
QUEUE(SYSTEM.DATATYPE.REPLY.QUEUE) TYPE(QLOCAL)
ACCTQ(QMGR) ALTDATE(2016-08-01)
ALTTIME(18.33.20) BOQNAME( )
AMQ8409: Display Queue details.
QUEUE(SYSTEM.DATATYPE.REQUEST.QUEUE) TYPE(QLOCAL)
ACCTQ(QMGR) ALTDATE(2016-08-01)
ALTTIME(18.32.37) BOQNAME( )
AMQ8409: Display Queue details.
QUEUE(SYSTEM.MESSAGE.ASSOCIATION.QUEUE)
TYPE(QLOCAL) ACCTQ(QMGR)
ALTDATE(2016-08-01) ALTTIME(18.32.37)
AMQ8409: Display Queue details.
QUEUE(SYSTEM.PENDING.DATATYPE.REPLY) TYPE(QLOCAL)
ACCTQ(QMGR) ALTDATE(2016-08-01)
ALTTIME(18.33.20) BOQNAME( )
我打算将值存储在 QUEUE 部分下,该值包含“DATATYPE”字而不包含“REPLY”字,期望输出是,
SYSTEM.DATATYPE.REQUEST.QUEUE
我的代码如下,
while (<OPEN_FILE>) {
my ($QName1) = /QUEUE\(([^()]+)\)/;
my ($QName1) = $QName1 =~ m/DATATYPE/ && $QName1 !~ m/RETRY/;
print "$QName1 \n";
}
但是,上面的代码失败了。
在上面的代码之前,我尝试使用一行来声明,但根本没有成功。
【问题讨论】: