I had better luck with this:
perl -i -p -e 'print "first line\n" if $. == 1;' data
It depends on the particular magic of $., of course. | [reply] [d/l] |
Unfortunately, this doesn't work, because the BEGIN occurs
before STDOUT is redirected to the output file (the file
you're writing to). Plus, in your case, you used single
quotes to surround your "\n", so it didn't get interpolated.
Here's what I get:
% perl -i -p -e "BEGIN{print 'A new line!\n';}" foo
A new line!\n%
I tried this myself, the other day, but ran into the
same problem. | [reply] [d/l] |