#!/usr/bin/perl -w use strict; use DirHandle; use File::Basename; use Getopt::Long; my $rcs = '$Id: listfiles.pl,v 1.3 2001/04/02 04:29:59 gilles Exp $ '; my $debug = 0; my $myself = $0; my $date = scalar(localtime()); my $title; GetOptions( "debug" => \$debug, ); my @files; @files = @ARGV; $debug and print "FILES:@files\n"; my (%files, @list, %done); foreach my $file (@files) { my($base, $lang, $ext); my $dirname = dirname($file); my $basename= basename($file); unless ($basename =~ /(.*)\.(..)\.(.*)/) { next; } else{ $debug and print "($1, $2, $3)\n"; $files{$file}{'dir'} = $dirname; $files{$file}{'base'} = $1; $files{$file}{'lang'} = $2; $files{$file}{'ext'} = $3; } } foreach my $file (sort keys %files) { my $dir = $files{$file}{'dir'} ; my $base = $files{$file}{'base'} ; my $lang = $files{$file}{'lang'} ; my $ext =$files{$file}{'ext'}; push(@list, "\n $base " . space(25,$base)) unless exists($done{"$dir\/$base"}); push(@list, "$lang"); $done{"$dir\/$base"}++; } print <@list EOF sub space { my $num = shift; my $string = shift; my $diff = $num - length($string); unless ($diff > 0) { return ""; }else{ return("." x $diff); } }