Команды, которые вы запускаете, получают где-то сообщение об ошибке, а переданные вами -F
аргументы удаляют его:
my @files = `$p4 -Ztag -F %clientFile% opened -c $ChangeNum -C $Client | $p4 -F %fromFile% -x - resolved`;
Заменить это на:
open(STDERR, ">&STDOUT");
my @files = `$p4 -Ztag -F %clientFile% opened -c $ChangeNum -C $Client | $p4 -x - resolved`;
print @files;
чтобы узнать, какое сообщение об ошибке вы получаете.
Если там тоже пусто, вернитесь на шаг:
open(STDERR, ">&STDOUT");
my @files = `$p4 -Ztag opened -c $ChangeNum -C $Client`;
print @files;
Как только вы увидите сообщение об ошибке, оно скажет вам, что не так с тем, как вы вызываете команду.
My hunch заключается в том, что ваша команда resolved
не использует тот же клиент, на котором открываются файлы. Если это так, ошибка будет выглядеть примерно так: no file(s) resolved
; Вы можете подтвердить, передав имя файла в p4 opened
(без указания -C client
), чтобы увидеть, открыто ли оно на текущем клиенте.