#!/usr/bin/perl -w use strict; local $/ = undef; my $file = ; while ( $file =~ # m,(use|require)[\s\+]+([\w:]+)\s*[^;]*;,igs # m,(?:use|require)\s+([\w:]+)\s*[^;]*;,igs # m,^[^#]*(use|require)\s+([\w:]+)\s*[^;]*;,igm m,^(?:use|require)\s+([\w:.]+)\s*[^;]*;,gms ) { printf( "%-20s %-20s %-20s\n", $1 || '*', $2 || '*', $3 || '*' ); } __DATA__ use one; require two; use three; # use four; # this is why you should use five. use Six::Maybe; require Seven.As.Well; require Eight ; # haha! use # nine; just kidding Nine;