#Year Doc_Num Image_File 2001 20233 E:\TEMP\IMAGES\2001_020233.tif 2001 20234 E:\TEMP\IMAGES\2001_020234.tif # etc... #### use strict; use Win32; use File::Basename qw(fileparse basename); use CGI qw(pretty); $|++; my $out = new CGI; my ( $directory, $tempdir, $index_file); # ... snip ... sub make{ mkdir $tempdir; open FILE, "< $index_file" or die $out->p("$index_file: $!"); open OUT, "> $index_file.result" or warn $out->p("$!\n"); print $out->start_p(), $out->br("\t", $out->a({-href=> "file://$index_file.result"}, "$index_file.result"), "OPENED\n"); my $incr = 0 ; while (my $long = ){ $long =~ s/^.*(\b\w+_\w+\.\w+)\s*/$1/ or next; $long = "$tempdir/$long"; open NEWFILE, "> $long"; close NEWFILE; my $short = Win32::GetShortPathName($long); $long =~ s/^.*(\b\w+)_(\w+\.\w+)/$1$2/; $short =~ s/^.*(\b\w+~\w+\.\w+)/$1/; print OUT $incr++,", $short, $long\n"; } print $out->end_p(); close OUT; close FILE; } #### 2001_020674.tif => 2001_0~1.TIF ... 2001_020677.tif => 2001_0~4.TIF 2001_020678.tif => 2001_0~5.TIF #### 2001_020674.tif => 2001_0~1.TIF ... 2001_020677.tif => 2001_0~4.TIF 2001_020678.tif => 204EFD~1.TIF #### 2001_020674.tif => 2001_0~1.TIF ... 2001_020677.tif => 2001_0~4.TIF 2001_020678.tif => 208483~1.TIF