Описание проблемы: программа "imapsync" предназначена для копирования почтовых ящиков по протоколу IMAP. После выполнения (удачного или нет) команда возвращает определенное значение (0 - все ОК, что-либо иное - проблема). Как мне в коде скрипта perl получить значение, возвращаемое выполненной командой "imapsync -v" (ключ -v в данном случае просто выводит версию программы, это я для тренировки).Пример:
#!/usr/bin/perl
$filename="emails.txt";
open(FILE,"<",$filename) || die "$!\n";# открываем файл для чтения
while(<FILE>) { # считываем построчно
@F = split; # выделяем столбцы (разделены табуляцией)
@L = split('@', $F[0]);
print "$L[0] - $F[1]\n"; # печатаем в формате "имя_ящика - пароль"
system("imapsync -v"); # как узнать значение, возвращаемое программой imapsync?
}
close(FILE);
Господа perlovod'ы, я понимаю, что выше приведенный код - надругательство над возможностями perl! Но я не знаю этого языка, поэтому для себя составил код "по полочкам".
На shell нечто вроде того, что нужно, выглядит так:
#!/bin/sh
exec < emails.txt # open for read
while read string
do
printf "$string\n"
result=`imapsync -v`
echo $result
if [ $? ]
then
printf "Returned value is $?.\n"
fi
done
exit 0
А как сделать на perl - не знаю.
Система CentOS.
Очень надеюсь на совет! Кстати, результат я выложу для упрощения жизни таким, как я, на страницу обсуждения http://www.iredmail.org/forum/post4247.html