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?


