Существует способ указать регулярному выражению пропустить встроенные пробелы и комментарии, поэтому не только вы можете разбить его на несколько строк, но и прокомментировать, отформатировать в разделы и т. Д. Я думаю, что это «х», но я не сейчас у вас нет под рукой документации, поэтому посмотрите ее на странице руководства.
Так что вы изменили бы его на что-то вроде:
my ($foo, $bar, $etc) = $input_line =~ /
^\d+: ....
(\X+)\(
\X(\d+.\d+|\d+) # numerator
\/\X(\d+.\d+|\d+) # denominator
\ (\X+)\)$/x # mind the escaped space!
Также возможно создавать части регулярного выражения отдельно через строковый префикс 'qr' и комбинировать их, используя подстановку переменных. Что-то вроде
my $num_re = qr/(\X+)\(\X(\d+.\d+|\d+)\/\X(\d+.\d+|\d+)/;
my ($foo, $bar, $etc) = $input_line =~ /^\d+: .... $num_re (\X+)\)$/;
Я долго этим не занимался, поэтому я не уверен, что вам нужны какие-либо флаги.