use strict;
use warnings;
use Data::Dumper;
use Tie::File;
# open the file if it exists, but fail if it does not
use Fcntl 'O_RDWR';
our @array = ();
our $file = 'taste';
tie @array, 'Tie::File', $file, mode => O_RDWR or die $!;
our $SearchString = 'HAI WORLD Times ([0-9]+).*$';
#our $ReplaceString = "\t\t'; # we could use such a statement ONLY if we figured out what something() would be
my $elementIdx = 0;
while($elementIdx <= $#array)
{
if($array[$elementIdx] =~ $SearchString)
{
# Maintain only the first character
#$array[$elementIdx] = unpack ('a' . (1 + length("\t\t")), something($ReplaceString)); # I would love to know what something() could be so that I can separate the configuration from the logic
$array[$elementIdx++] = "\t\t';
#++$elementIdx;
}
else
{
splice @array, $elementIdx, 1;
# we don't want this in the output
}
}
untie @array; # all done!