#!/usr/bin/perl use strict; use warnings; open OUT, '>', 'junk.1' or die $!; print OUT 'X'x 20 . "$_\n" for 1 .. 20; close OUT; open OUT, '>', 'junk.2' or die $!; print OUT 'Y'x 20 . "$_\n" for 1 .. 20; close OUT; open IO, '+<', 'junk.1' or die $!; seek IO, 0, 0; print scalar ; system $^X, '-le', q[ print rename( 'junk.2', 'junk.1' ) ? 'worked' : 'failed']; print scalar ; seek IO, 0, 0; print scalar ; close IO; unlink 'junk.1';