http://www.perlmonks.org?node_id=67674


in reply to Scanning a plsql package body to make package headers... regexp requested

Close...
#!/usr/bin/perl -w use strict; my $file = shift or die "must supply body file"; open F, $file; my $text = join '', <F>; my $regex = '(procedure|function)\b(.*?)\((.*?)\)'; while ($text =~ /$regex/mgs) { print $1,$2,"($3);",$/; }
The m is important to enable multi-line matching, or your regex will not scan across newlines.