#!/usr/bin/env perl
use IO::All;
#$debug = 1;
my %subs;
while (my $source = shift @ARGV){
	my @lines = io($source)->slurp;
	$debug and print "lines: ". scalar @lines, $/;
	my $sub_re = qr/^sub\s+(\w+)\s*\{/;
	@subs = map{ /$sub_re/ and $1 } grep {/$sub_re/} @lines;
	$debug and print "subs:". scalar @subs, $/; 
	# print join ($/, @subs), $/;
	#my $text = join '', @lines;
	#map {$text =~ s/(\s$_)\s*;/$1();/gx } @subs;
	#print $text;
	@subs{@subs} = 1..scalar @subs;
}
my @subs = sort keys %subs;
	$debug and print "subs:". scalar @subs, $/; 
	print join $/, @subs;
