copy( "C:\\somename", C:\\some_path\\some_other_name" )
To generate the new names dynamically you use something like:
# this is a test example
my $name = 'doc.txt';
for ( 1 .. 10 ) {
my $unique = get_unique_filename($name);
$names{$unique}++;
print "$unique\n";
}
sub get_unique_filename {
my $name = shift;
$name =~ s/(\.[^\.]+)$//;
my $ext = $1 ? $1 : '';
my $tries = '';
my $max_tries = 100;
while ( not unique_name($name.$tries.$ext) ) {
$tries++;
die "Could not make a unique file name $name\n" if $tries > $m
+ax_tries;
}
return $name.$tries.$ext;
}
# this tests if our name exists in the test hash
# you need to test if the file exists here instead
sub unique_name {
my $name = shift;
return defined $names{$name} ? 0 : 1;
# return -e $name ? 0 : 1;
}
Without the demo code all you need is a single sub that looks like:
sub get_unique_filename {
my $name = shift;
$name =~ s/(\.[^\.]+)$//;
my $ext = $1 ? $1 : '';
my $tries = '';
my $max_tries = 100;
while ( -e $name.$tries.$ext ) {
$tries++;
die "Could not make a unique file name $name\n" if $tries > $m
+ax_tries;
}
return $name.$tries.$ext;
}
cheers
tachyon
s&&rsenoyhcatreve&&&s&n.+t&"$'$`$\"$\&"&ee&&y&srve&&d&&print
|