Как добавить строку в файл с помощью Perl?
Без массива.
Читать по одной строке из файла, записывать по одной строке во временный файл.
Когда встретится нужный раздел - записать во временный файл дополнительную строку.
Переименовать временный файл в исходный.
Временный файл лучше разместить рядом (в том же каталоге) чтобы сработал rename.
Мне кажется если в вашем примере заменить "username4" на "u4" то получится каша.
Файлы нельзя просто так взять и "растянуть" или "сжать" в середине.
Максимум что можно сделать - обрезать с конца или дописать в конец.
#!/usr/bin/perl

use strict;
use warnings;

while (<>) {
    print;
    last if /<Title1>/i;
}
while (<>) {
    if (/<Title/i) {
        print "username4\n";
        print;
        last;
    }
    else {
        print;
    }
}
print while <>;
Использование:mv users.list users.list.bak && ./users.pl <users.list.bak >users.list
Если файл небольшой, то можно проще:mv users.list users.list.bak && perl -e '(my $ss = join "", <>) =~ s/(<Title1>[^<]+)(.+)/$1username4\n$2/is; print $ss;' <users.list.bak >users.list
Или:$ perl -e '$/ = ""; <> =~ /(<Title1>[^<]+)(.+)/is && print $1, "user4\n", $2;' <users.list
<Title1>
username1
username2
username4
user4
<Title2>
username2
username3