#!/usr/bin/perl -w
#
# Name: put_no_previous_to_filename
# puts running no. previous to filename
# remark "./" at the beginnig of the produced command for mv because of the dash of the filename, interpreted as option by mv
# writes batch to STDOUT
# 
# by Gerd Hoffmann (C)
#
# 1211019

use strict;

my ( $name, @dirlist ) ;
my $dir = "./"  ;
my $no_begin = 10 ;

opendir(DIR, $dir) || die "no $dir ?: $!";
foreach  $name (sort (readdir(DIR)) ) {
   if ( defined($name) ) {
      if ( -d $name ) { next; }
      else {
         (@dirlist) = (@dirlist, $name);
#         print "$name\n"; 
      }
   }
}

closedir(DIR);

#print "$#dirlist\n" ;

for ( my $i=0; $i <= $#dirlist; $i++ ) {
   printf ("mv %s %03d-%s\n", $dirlist[$i], $no_begin, $dirlist[$i] ) ;
   $no_begin++ ;
}


__END__


opendir(DIR, $dir) || die "no $dir?: $!";
while ( $name = readdir(DIR) ) { # skalarer Kontext, einer pro Schleifendurchlauf
      if( $name =~ /(.*)$pattern(.*)/) {
         $newname = "$1-$2" ;
         $name="\"$name\""; # perhaps it will also work without this line ?
         print "mv ./$name ./$newname\n";      
      }
}



opendir(DIR, $dir) || die "kein $dir?: $!";
foreach  $name (sort (readdir(DIR)) ) {
   (@dirlist) = (@dirlist,$name);
#   print "$name\n"; 
}
closedir(DIR);




# mit printf formatierte Liste, numeriert
print "\nContent of directory $dir:\n\n"; 
for ($i = 0; $i <= $#dirlist; $i++,$i++) {
   printf"  %s%3s  %25s      %s%3s   %25s\n", 
              ( -d $dirlist[$i] ) ? '*' : " ",
              $i+1, 
              $dirlist[$i], 
              ( (defined($dirlist[$i+1])) && ( -d $dirlist[$i+1] ) ? '*' : " " ),
              ( defined($dirlist[$i+1]) ? $i+2 : "" ),
              ( defined($dirlist[$i+1]) ? $dirlist[$i+1] : "" ) ;
}

############# mit format
#for ($i = 0; $i <= $#dirlist; $i++) {
#   write STDOUT;
#}

#format STDOUT =
#   @##   @<<<<<<<<<<<<<<<<<<<      @##   @<<<<<<<<<<<<<<<<<<<  
#   $i+++1, $dirlist[$i-1],         $i+1, $dirlist[$i]
#.


