my @lines = do { local $/; <$in> }; # slurp! my $new_first_line = "My new first line.\n"; unshift @lines, $new_first_line;