my ($title) = ($info{$host} =~ /^\s*\(([^\)]+)\)\s*$/);
Сначала m//
в контексте списка возвращает захваченные совпадения. my ($title)
помещает правую часть в контекст списка. Во-вторых, $info{$host}
сопоставляется со следующим шаблоном:
/^ \s* \( ( [^\)]+) \) \s* $/x
Да, использовал флаг x
, чтобы я мог вставить несколько пробелов. ^\s*
пропускает все начальные пробелы. Затем у нас есть экранированный паратез (поэтому группа захвата не создается. Затем у нас есть группа захвата, содержащая [^\)]
. Этот класс символов можно лучше записать как [^)]
, поскольку правая скобка не является особенной в классе символов и означает все, кроме левой круглой скобки .
Если есть один или несколько символов, отличных от закрывающей скобки, после открывающей скобки, за которой следует закрывающая скобка, необязательно окруженная с обеих сторон пробелами, эта последовательность символов захватывается и вставляется в $x
.