Why can't I add to the middle of an array with Perl's Tie::File?
- by SCNCN2010
File :
#comment1
#comment2
#comment3
#START HERE
a: a@email.com
b: b@email.com
my perl program :
use Data::Dumper;
use Tie::File;
tie my @array, 'Tie::File', 'ala.txt' or die $!;
my $rec = 'p: p@email.com';
my $flag =1 ;
my $add_flag = 0;
for my $i (0..$#array) {
next if ($array[$i] =~ /^\s*$/);
if ( $flag == 1 ) {
if ($array[$i] =~ /#START HERE/ ) {
$flag = 0;
}
else {
next ;
}
}
if (($array[$i] cmp $rec) == 1) {
splice @array, $i, 0, $rec;
$add_flag = 1;
last ;
}
}
if ( $add_flag == 0 ) {
my $index = $#array+1;
$array[$index] = $rec ;
}
the recording adding end of file always . I am trying to add to middle or begin or end like aplphbetical order
Edit 2 :
I want to do with Tie::FILE only .
after add :
(after 2 execution )
#comment1
#comment2
#comment3
#START HERE
a: a@email.com
b: b@email.com
p: p@email.com
a: ab@email.com # if i add another record of a
Expection :
#comment1
#comment2
#comment3
#START HERE
a: a@email.com
a: ab@email.com
b: b@email.com
p: p@email.com
q: [email protected]