Perl: Что означает $ hashName {"a", "b", "c"} = "d" ;? - PullRequest
5 голосов
/ 22 сентября 2019

Я пытаюсь преобразовать большую программу на Perl в Java.В функции инициализации он создает хеш, используя скобки, а затем начинает присваивать значения.Но тогда ключи становятся парами и тройками строк, разделенных запятыми.Что это значит?

 %par=( ...  )

 $par{"symbolChainAny"}=     "*";   # chain name if ...
 $par{"acc2Thresh"}=         16;    # threshold for...
 $par{"txt","copyright"}=       "elided";
 $par{"txt","contactEmail"}=    "elided";

 $par{"txt","modepred","sec"}=  "prediction of secondary structure";
 $par{"txt","modepred","cap"}=  "prediction of secondary structure caps";```

1 Ответ

8 голосов
/ 22 сентября 2019
$foo{$x, $y, $z}

эквивалентно

$foo{join($;, $x, $y, $z)}

, где $; по умолчанию - управляющий символ ("\x1C").


Не просто похоже ...

$ diff \
   <( perl -MO=Concise,-exec -e'$foo{$x,$y,$z}' 2>&1 ) \
   <( perl -MO=Concise,-exec -e'$foo{join($;,$x,$y,$z)}' 2>&1 ) \
   && echo identical
identical
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...