That saves the call out to the shell to do the copy (and preserves the date of the original as the version's date.)
Also, you might check out IPC::ClearTool. It opens a two-way pipe to the cleartool command and lets you send commands one at a time and check the error status on each step (and you don't need an intermediate file).