sub ws { s/\r/\n/gs; s/ +/ /gs; s/\n+/\n/gs; } @_ = ; $_ = join "\n", @_; # comments s/;.*?$//gm; # norats s/\nNORATS.*?\n//gs; ws; my @lines = split "\n"; foreach(@lines) { $typeR = qr/([A-Z]+ )?/; $nameR = qr/([a-zA-Z\-0-9]+)/; ($type, $name, $rest) = /^$typeR$nameR <- (.*?)$/; print $name; print "\n"; }