Substituindo várias ocorrências de um caractere entre dois padrões de sequência

Eu tenho um arquivo 1.txt com o conteúdo abaixo

F1, F2, [as1, as2], [as3, as4]

F3, F4, F5, [as5, as6]

Eu preciso escrever um regex em perl para poder alterar o delimitador ',' entre[' and '] para| .

Eu tentei abaixo, mas não funcionou.

@qr = $st = /\{(.*)(\|)+\}/;

Onde$st tem a sequência de entrada.