in reply to print lines from a file

Here's another way.
# Args are N, Oldfile, Newfile # Get N and Newfile, leave Oldfile my ($n, $newfile) = (shift,pop); # Process inplace $^I=1; open(NEW, '>', $newfile) or die "$!: $newfile\n"; while (<>) { # Print first N lines to NEW if (1..$.==$n) { print NEW } # Everything else overwrites Oldfile else { print } } close NEW;

Caution: Contents may have been coded under pressure.