El asunto no es tan sencillo... Cuando pones '<>' le estás pidiendo que lea desde la entrada estándar, hasta que encuentre un final de archivo.
Si la entrada la estás escribiendo tu, la marca de fin de fichero depende del sistema operativo que estés usando. En la mayor parte de los sistemas actuales se hace con Control+D.
En ese momento, la entrada pasará a XMLin(), que admitirá tanto XML como el nombre de un archivo a procesar. En el primer caso (le estás pasando código XML) lo leerá sin problemas. Pero para el segundo caso, sí que hay problemas: si has pulsado la tecla de
Enter (o Entrar o Retorno de carro), el nombre del archivo vendrá acompañado de ese/los carácter/caracteres que marcan el final de línea. Así que no podrá encontrar ese archivo porque no coincide con lo que le has escrito (el archivo en el disco no tendrá esos caracteres al final).
Lo mejor... hacer las cosas por separado.
Using perl Syntax Highlighting
print "Archivo a procesar (Q para terminar): ";
my $archivo_xml = <>; # leemos
chomp $archivo_xml; # quitamos el retorno de carro
exit if $archivo_xml eq 'Q'; # salimos
my $data = $xml->XMLin( $archivo_xml, ForceArray
=> ['Cabecera'] );Coloreado en 0.001 segundos, usando
GeSHi 1.0.8.4