# NAME
File::Copy::NoClobber - Rename copied files safely if destionation exists
# SYNOPSIS
use File::Copy::NoClobber;
copy( "file.txt", "elsewhere/" ); # elsewhere/file.txt
copy( "file.txt", "elsewhere/" ); # elsewhere/file (01).txt
# similar with move
move( "file.txt", "elsewhere/" ); # elsewhere/file (02).txt
use File::Copy::NoClobber -warn => 1; # warns when name is changed
use File::Copy::NoClobber -pattern => "[%04d]" # custom noclobber
# DESCRIPTION
The module exports copy() and move(). They are wrappers around `copy`
and `move` in [File::Copy](
https://metacpan.org/pod/File::Copy).
# INTERFACE
## copy( $from, $to \[, $buffersize\] )
Supportes the same arguments as [File::Copy](
https://metacpan.org/pod/File::Copy).
Checks if the operation would overwrite an existing file, if so adds a
counter to the destionation filename as shown in the SYNOPSIS.
The module uses sysopen with O\_EXCL and an increasing counter to
determine a working filename. The second argument is then replaced
with this filehandle and passed to `File::Copy::copy`.
The counter inserted to filenames is `" (%02d)"` by default, but can
be changed on import.
It returns the filename written to or undef if unsuccesful.
## move( $from, $to )
Supportes the same arguments as [File::Copy](
https://metacpan.org/pod/File::Copy).
Determines destination filename in the same way as `copy`, but the
move operation is used on the filename rather than the filehandle, to
allow rename to be used.
# DEPENDENCIES
This module does not introduce dependencies. It does not use modules
not already in use in File::Copy.
# AUTHOR
Torbj�rn Lindahl `
[email protected]`
# CONTRIBUTORS
Core ideas from _Botje_, _huf_ and _tm604_ in #perl@freenode
# LICENCE AND COPYRIGHT
Copyright (c) 2016, Torbj�rn Lindahl `
[email protected]`.
All rights reserved.
This module is free software; you can redistribute it and/or modify it
under the same terms as Perl itself. See [perlartistic](
https://metacpan.org/pod/perlartistic).