local $/; # make undef my @daily = do { local @ARGV = "daily.txt"; <> }; my @monthly = do { local @ARGV = "monthly.txt"; <> }; die "nothing to transfer" unless @daily > 3; my @transfer = splice @daily, -3; # last three of @daily becomes @transfer open OUT, ">daily.txt" or die "Cannot recreate daily.txt: $!"; print OUT @daily; close OUT; open OUT ">monthly.txt" or die "Cannot recreate monthly.txt: $!"; print OUT @transfer, @monthly; close OUT;