AI Cowboy:
If you just want information on the first line to disappear and don't really have any particular reason that you must move the data in the file, you could always overwrite it with blanks. You could do that *very quickly*:
#!/usr/bin/perl
use strict;
use warnings;
use autodie;
# Open file in read/write mode
open my $FH, '+<', 'tmp.txt';
# Skip the first line
my $t = <$FH>;
# Remember the starting location of the second line
my $pos = tell $FH;
# Read the second line
$t = <$FH>;
# Rewind back to the start of the second line and obliterate it
seek $FH, $pos, 0;
print $FH "*" x (length($t)-length($/));
Here's a quick demonstration:
$ head -5 tmp.txt
You are on the edge of a breath-taking view. Far below you
is an active volcano, from which great gouts of molten lava
come surging out, cascading back down into the depths. The
glowing rock fills the farthest reaches of the cavern with
a blood-red glare, giving every- thing an eerie, macabre
$ perl obliterate_second_line.pl
$ head -5 tmp.txt
You are on the edge of a breath-taking view. Far below you
************************************************************
come surging out, cascading back down into the depths. The
glowing rock fills the farthest reaches of the cavern with
a blood-red glare, giving every- thing an eerie, macabre
...roboticus
When your only tool is a hammer, all problems look like your thumb. |