Уже и позабыл о этом вопросе. Меж тем решил задачу следующим образом:
Скрипт обращается к txt файлу в котором указаны адреса и нужные имена в формате "255.255.255.255|hostname", отделяет адрес от текста, заносит их в отдельные переменные, потом заходит по адресу указанному в переменной с адресом и выполняет нужные операции. В операции по замене имени подставляет переменную с хостнеймом в текст команды. Сохраняет настройки и уходит с устройства. Цикл повторяется пока не закончится текстовый файл.
#while (<$IPadd>)
while (defined($Source = <TEMP>))
{
($IPadd, $Hostname) = (split/\|/ , $Source);
my ($command1)="$Hostname";
print "$Source $IPadd\n $Hostname";
$counter++;
chomp ($_);
$t->open($IPadd);
$t->waitfor('/:$/i');
$t->print($username);
$t->waitfor('/:$/i');
$t->print($passwd);
$t->print ("$ena");
$t->print ("$conf");
$t->print("hostname $command1");
$t->print("$command_exit");
my @command= $t->cmd(Timeout => 60, String =>"$command_wrmem");
@command= $t->cmd(Timeout => 60, String => 'y');
$t->print("$command_exit");
#$t->print("$command_exit");
print "$counter",' ';
}
close TEMP;
print ('done on ',"$counter",' ');
Паузы в конце ставились из-за того, что на некоторых железках конфигурация не сохранялась.
Способ не идеальный, но в свое время помог серьезно ускорить работу.