Mason - 将字符串映射传递给服务调用
Mason - Passing a map of strings to a service call
我正在尝试将字符串映射传递到我从 .mi 文件进行的服务调用。
我正在尝试下面的操作,但它在“;”处给我语法错误。
my $serviceResult = PI::employee::register::Service->saveAttributes(
attributesMap => map { ('session-id' => $Session->getSessionId())}
);
如果我改为尝试
my $serviceResult = PI::employee::register::Service->saveAttributes(
attributesMap => map { 'session-id' => $Session->getSessionId()}
);
它说地图的参数不足。 :(
Perl 的 map
函数,如 perldoc -f map
中所述,接受一个 BLOCK
(或 EXPR
)和一个 LIST
。您没有提供 LIST
,因此您的代码无法编译。
您可以通过提供列表来消除解析错误:
map { ('session-id' => $Session->getSessionId()) } (1)
但这几乎肯定不是您想要的。您错误地使用了 map
。您想要一个从键到值的映射,这不是 map
函数的用途。
而不是对 map
的调用,看起来您需要像
这样的哈希引用
{ 'session-id' => $Session->getSessionId() }
.
我正在尝试将字符串映射传递到我从 .mi 文件进行的服务调用。
我正在尝试下面的操作,但它在“;”处给我语法错误。
my $serviceResult = PI::employee::register::Service->saveAttributes(
attributesMap => map { ('session-id' => $Session->getSessionId())}
);
如果我改为尝试
my $serviceResult = PI::employee::register::Service->saveAttributes(
attributesMap => map { 'session-id' => $Session->getSessionId()}
);
它说地图的参数不足。 :(
Perl 的 map
函数,如 perldoc -f map
中所述,接受一个 BLOCK
(或 EXPR
)和一个 LIST
。您没有提供 LIST
,因此您的代码无法编译。
您可以通过提供列表来消除解析错误:
map { ('session-id' => $Session->getSessionId()) } (1)
但这几乎肯定不是您想要的。您错误地使用了 map
。您想要一个从键到值的映射,这不是 map
函数的用途。
而不是对 map
的调用,看起来您需要像
{ 'session-id' => $Session->getSessionId() }
.