Gabriel,<br><br>#2 perfeitamente correta, sim, ficou faltando o ERR em caso de senha existente porém errada.<br><br>para a pergunta #1, sem entrarmos na questão de quão efetivo é ter um mecanismo de authenticação se não há senha, o que você precisa fazer é usar a regexp:<br>
<br>m{^(\S+)\s(.+)?$}<br><br>com a interrogação, denotando que a senha é um parâmetro opcional. Nesse caso você poderá deixar o código com somente:<br><br>my ( $user, $password ) = m{^(\S+)\s(.+)$};<br>print is_valid( $user, $password )?&quot;OK\n&quot;:&quot;ERR\n&quot;;<br>
<br>Não há necesisdade de fazer o primeiro teste:<br><br>a) da forma como o Fields colocou antes era para testar senha vazia, que no seu caso é algo que você quer (why??? oh god, why??)<br>b) da forma como você colocou ele vai testar se houve match ou não, o que irá retornar sempre true, ou seja, o print &quot;ERR\n&quot; nunca será executado.<br>
<br>De qualquer maneira, pode ser removido.<br><br>[]s,<br>Russo<br><br><br><br><div class="gmail_quote">2008/6/5 Gabriel Vieira &lt;<a href="mailto:gabriel.vieira@gmail.com">gabriel.vieira@gmail.com</a>&gt;:<br><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
1) Se o usuário colocar apenas &quot;login &quot; haverá falha na REGEX, então<br>
por que não usá-la como validador direto? A senha pode ser em branco?<br>
2) Caso a senha e o login não batam, precisaria retornar caso tivesse<br>
erro, certo?<br>
<br>
<br>
print &quot;ERR\n&quot; unless my ( $user, $password ) = m{^(\S+)\s(.+)$};<br>
print is_valid( $user, $password )?&quot;OK\n&quot;:&quot;ERR\n&quot;;<br>
<div class="Ih2E3d"><br>
<br>
<br>
2008/6/5 Luis Motta Campos &lt;<a href="mailto:luismottacampos@yahoo.co.uk">luismottacampos@yahoo.co.uk</a>&gt;:<br>
</div><div><div></div><div class="Wj3C7c">&gt; Fernando Oliveira wrote:<br>
&gt;&gt; # Não seria melhor assim, p/ possibilitar senhas com espaço?<br>
&gt;&gt; &nbsp; &nbsp;my @userPass = split / /;<br>
&gt;&gt; &nbsp; &nbsp;my $user = $userPass[0];<br>
&gt;&gt; &nbsp; &nbsp;my $password = join &quot; &quot;, @userPass[1 .. $#userPass];<br>
&gt;<br>
&gt; Hum. Senhas podem ter espaços. Certo, mudança de estratégia. Nada de<br>
&gt; usar split().<br>
&gt;<br>
&gt; #!/usr/bin/perl<br>
&gt; use strict;<br>
&gt; use warnings;<br>
&gt; use IO::Handle;<br>
&gt;<br>
&gt; STDOUT-&gt;autoflush(1);<br>
&gt; STDERR-&gt;autoflush(1);<br>
&gt;<br>
&gt; # implement your password validation here<br>
&gt; sub is_valid;<br>
&gt;<br>
&gt; while (&lt;&gt;) {<br>
&gt;<br>
&gt; &nbsp; &nbsp; # captura um username (sem espaços, seguido de um<br>
&gt; &nbsp; &nbsp; # espaço, seguido de qualquer coisa ( a senha).<br>
&gt; &nbsp; &nbsp; my ( $user, $password ) = m{^(\S+)\s(.+)$};<br>
&gt; &nbsp; &nbsp; print &quot;ERR\n&quot; unless $password; &nbsp; &nbsp;# do not accept empty<br>
&gt; &nbsp; &nbsp; print &quot;OK\n&quot; if is_valid( $user, $password );<br>
&gt; }<br>
&gt; __END__<br>
&gt;<br>
&gt; Putamplexos!<br>
&gt; --<br>
&gt; Luis Motta Campos (a.k.a. Monsieur Champs) is a software engineer,<br>
&gt; Perl fanatic evangelist, and amateur {cook, photographer}<br>
&gt; _______________________________________________<br>
&gt; SaoPaulo-pm mailing list<br>
&gt; <a href="mailto:SaoPaulo-pm@pm.org">SaoPaulo-pm@pm.org</a><br>
&gt; <a href="http://mail.pm.org/mailman/listinfo/saopaulo-pm" target="_blank">http://mail.pm.org/mailman/listinfo/saopaulo-pm</a><br>
&gt;<br>
<br>
<br>
<br>
</div></div>--<br>
<font color="#888888">Gabriel Vieira<br>
</font><div><div></div><div class="Wj3C7c">_______________________________________________<br>
SaoPaulo-pm mailing list<br>
<a href="mailto:SaoPaulo-pm@pm.org">SaoPaulo-pm@pm.org</a><br>
<a href="http://mail.pm.org/mailman/listinfo/saopaulo-pm" target="_blank">http://mail.pm.org/mailman/listinfo/saopaulo-pm</a><br>
</div></div></blockquote></div><br><br clear="all"><br>-- <br>Alexei Znamensky [russoz_gmail_com] [<a href="http://russoz.wordpress.com">russoz.wordpress.com</a>] [<a href="http://www.flickr.com/photos/alexeiz">www.flickr.com/photos/alexeiz</a>]<br>
&quot;Though we live in trying times, we&#39;re the ones who have to try&quot;