Pues... yo no soy muy experto en Expect, así que no sé si eso es posible.
¿Sabes que se ha instalado correctamente el archivo en el destino? Una forma sería calcularle un MD5 y compararlo con el del original, pero es muy posible que no exista el comando md5sum en el equipo remoto, o que incluso podamos ejecutar algo allí.
Veo que estás usando sftp para mover los archivos. Entonces, estás usando Expect para conectarte a una máquina, y con el sftp, llevar un archivo local tuyo a esa máquina. ¿Es correcto? Entonces, ¿por qué no usar directamente
Net::SSH2::SFTP o alguno de los otros módulos
sftp para llevar archivos locales hacia/desde sistemas remotos? Controlas la presencia de los archivos locales por medio de test. Y la comunicación está asegurada por el propio protocolo, o devolverá un error muy claro.
Como último recurso, se me ocurre bajarme el archivo para ver si es igual al que tenía antes.