梅森 - 将字符串映射传递给服务调用

时间:2015-11-21 10:32:43

标签: perl dictionary mason

我正在尝试将字符串映射传递给我正在使用.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()}
      );

它说地图的论据不够。 :(

1 个答案:

答案 0 :(得分:3)

if(false); //Explicit boolean $true = true; if($true); //Variable that was assigned a constant boolean if(ClassName::Constant); //Class constant if(1>2); //Constant value expression 中记录的Perl map函数需要BLOCK(或EXPR)和LIST。您没有提供LIST,因此您的代码无法编译。

您可以通过提供列表来消除解析错误:

map { ('session-id' => $Session->getSessionId()) } (1)

但这几乎肯定不是你想要的。您错误地使用map。您需要从键到值的映射,这不是map函数的用途。

而不是调用map,看起来你需要像

这样的hashref

{ 'session-id' => $Session->getSessionId() }