El programa toma de un fichero de texto usuario.txt que contiene:
"usuario1 password1 usuario2 password2" (sin comillas y reemplazando usuario1 y2 por el username y als contaseñas correspondientes"
El sistema funciona bien
El codigo de la funcion:
Código:
El problema que estoy teniendo es que si la contraseña tiene un espacio en blanco en el medio entonces se "corta" sub getUserList { my $users = shift; unless ( open(F, "<$userList") ) { print "Error opening $userList: $!\n"; exit; } while ( <F> ) { next if /#/; chomp; $sourceUser=$sourcePwd=$destUser=$destPwd=''; s/\s+/ /g; /(.+)\s+(.+)\s+(.+)\s+(.+)/; /(.+)[\s+|:](.+)[\s+|:](.+)[\s+i|:](.+)/; $sourceUser = $1; $sourcePwd = $2; $destUser = $3; $destPwd = $4; $destUser = $sourceUser unless $destUser; $destPwd = $sourcePwd unless $destPwd; push( @$users, "$sourceUser $sourcePwd $destUser $destPwd" ); } close F; }
Eso es por que el contenido de fichero.txt es usado como parametro y son 4 parametros, no se como escribir la contraselña en ese fichero de texto para que se escape el espacio en blanco y lo tome como parte del parametro.
Probe escribir usuario1 \password1 con espacios\ usuario2 password2 pero no me funciona, proba con comillas simples y dobles y tamopoco.
Alguna idea?