in reply to profiling help

A micro op that may save you time is to anchor your regex.. Which may or may not be possible.. I was thinking something along the line of say
.. snip .. if (/^hostname ([-\w]+) /) or if (/^(?:\s+|)hostname ([-\w]+) /)
or even better if its on a line all by itself as you can at either end of the string..

I know its not why you asked, but you arent testing to see whether or not your open was successful..
# old line open F, $path; # new line IMHO open(F, "$path") || die "Cant open $path: $!\n"; # or even open(F, "$path") || ( print "Cant open $path: $!\n" && next); # another small trim would be to do away with the interim # array and filename.. $filelist = "/var/adm/links/newrun/filelist"; for ( `cat $filelist` ) { chomp; open(F, "$_") || die "Cant open $_: $!\n"; while (<F>) { # anchor could apply here as well.. !/hostname/ ? next : chomp; # work on hostname lines here last; } close(F); print $hostname. " "; }
Just some rambling thoughts on the code..

MMMMM... Chocolaty Perl Goodness.....