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; }