Это также работает, если входные данные предоставлены в файл в качестве аргумента сценария, и немного короче:
$/=$.;$_=<>;s/\s?\n/, /g;s/, (\w+:),?/\n$1/g;s/, $/\n/;print
Это не очень читаемо, но работает с strict
и warnings
.
Вывод:
alpha: beta
beta: alpha, beta
omega: beta, gamma, alpha
gamma: alpha, beta, gamma
epsilon: alpha
Вероятно, его можно сократить еще больше.-ape
или #!perl -ap
было бы хорошим началом.