#!/usr/local/bin/perl undef @Lines; dodir('.'); open(OUT, ">../vnums.txt"); foreach $line (sort bynum(@Lines)) { print OUT $line; } close OUT; exit; sub dodir { local($dir,$nlink) = @_; local($dev,$ino,$mode,$subcount,$uid,$gid,$rdev); local($size,$atime,$mtime,$ctime,$blksize,$blocks); ($dev,$ino,$mode,$nlink,$uid,$gid,$rdev,$size,$atime, $mtime,$ctime,$blksize,$blocks) = stat('.') unless $nlink; opendir(DIR,'.') || die "Can't open $dir"; local(@filenames) = grep(!/^\.\.?$/, readdir(DIR)); closedir(DIR); $subcount = $nlink - 2; for (sort(@filenames)) { $name = "$dir/$_"; ($dev,$ino,$mode,$nlink,$uid,$gid,$rdev,$size,$atime, $mtime,$ctime,$blksize,$blocks) = lstat($_); if (-d _) { } else { $isprn = index($_, ".are"); if ($isprn >= 0) { &process_file($dir,$_); } } } } sub process_file { local($dir,$infilename) = @_; local($outfilename); undef @Fileparse; @Fileparse = split(/\./, $infilename); if ($Fileparse[$#Fileparse] eq "are") { open(IN,"$infilename"); $in = <IN>; chomp $in; if ($in ne "#AREA") { close IN; return; } $in = <IN>; $in = <IN>; $name = <IN>; chomp $name; chomp $name; chomp $name; chop $name; $in = <IN>; $vnums = <IN>; ($low,$high)=split(' ', $vnums); $out = sprintf("%-5d - %-5d %s\n", $low, $high, $name); push(@Lines,$out); close IN; } } sub bynum { $a <=> $b; }