вторая версия)))
добавлена вставка строк и поиск.
поиск на основе регулярных выражений так сто смело используйте \s \d \W \n и другое
#!/usr/bin/perl
use Cwd;
$cwd=cwd;
sub CHOISE{
open(FB,"$cwd/redak")or die"$!";
@fb=<FB>;
close (FB);
foreach(@fb){$n++;if (/#&(\/.*)/){print "$n $1\n";}
if ($n==0) {IN;}}}
sub IN{
print "Введите полный путь и имя файла.\n";
chomp($path=<STDIN>);
open(FB,">>$cwd/redak")or die"$!";
print FB "#&", $path, "\n";
close (FB);}
sub FIND{
print "Введите искомый фрагмент.";
chomp($find=<STDIN>);
foreach(@file){print $nSt++, " $_";if(/$find/){$find{$nSt}=$_;}}
foreach(keys %find){print "Найдено № $_ --> $find{$_}";}}
sub NUMERASION {
foreach(@file){print $nSt++, " $_"}
print "Введите порядковый номер строки\n";
chomp($numSt=<STDIN>);
print $file[$numSt];}
sub VBO{
print "\nВыберите действие\nЗакомментировать 'z' Раскомментировать 'r'\nУдалить 'd' Вставить 'i'\nИзменить 'c' Найти 'f' Выйти 'e'\n";
chomp($choise1=<STDIN>);}
sub SAVE{
open (FWRIT, ">$path")or die "$!";
for(@file){print FWRIT $_;}
close (FWRIT);}
sub INSE{
print "\nВведите текст новой строки\n";
$TmpMas1[$numSt]=<STDIN>;
foreach (@file){
if($numSt>$nr){$TmpMas1[$nr]=$_;}
elsif($nr>=$numSt){$TmpMas2[$nr]=$_;}$nr++;}
splice (@TmpMas2, 0, 0, @TmpMas1);
@file=();@file=@TmpMas2;}
sub KOMM{
VBO;
if($choise1 eq "r"){$file[$numSt]=~s/^#(.*)/$1/;SAVE;}
elsif($choise1 eq "z"){$file[$numSt]=~/^(.*)/;$file[$numSt]="#$1\n";SAVE;}
elsif($choise1 eq "d"){$file[$numSt]=();SAVE;}
elsif($choise1 eq "c"){print "\nВведите новый вариант\n";$file[$numSt]=<STDIN>;SAVE;}
elsif($choise1 eq "i"){INSE; SAVE;}
elsif($choise1 eq "f"){FIND;}
elsif($choise1 eq "e"){exit 0;}}
#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$
print "Выбрать из введённых ранее ? 'y'\n";
chomp($sel=<STDIN>);
if($sel eq "y"){
CHOISE;
print "\nВведите порядковый номер файла\n";
chomp($num=<STDIN>);
$fb[$num-1]=~/^#&(.*)/;
$path=$1;}
else {IN;}
open (FILE, "$path")or die "$!";
@file=<FILE>;
close (FILE);
NUMERASION;
KOMM;
####################################################################################
# Axe79 Alex Grutman icq: 280699547 e-mail: medelect@mail.ru #
####################################################################################
#&/etc/xinetd.conf
#&/etc/xinetd.d/vsftpd
#&/etc/vsftpd/conf
#&/home/axe/Desktop/bindss