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 )?"OK\n":"ERR\n";<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 "ERR\n" 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 <<a href="mailto:gabriel.vieira@gmail.com">gabriel.vieira@gmail.com</a>>:<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 "login " 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 "ERR\n" unless my ( $user, $password ) = m{^(\S+)\s(.+)$};<br>
print is_valid( $user, $password )?"OK\n":"ERR\n";<br>
<div class="Ih2E3d"><br>
<br>
<br>
2008/6/5 Luis Motta Campos <<a href="mailto:luismottacampos@yahoo.co.uk">luismottacampos@yahoo.co.uk</a>>:<br>
</div><div><div></div><div class="Wj3C7c">> Fernando Oliveira wrote:<br>
>> # Não seria melhor assim, p/ possibilitar senhas com espaço?<br>
>> my @userPass = split / /;<br>
>> my $user = $userPass[0];<br>
>> my $password = join " ", @userPass[1 .. $#userPass];<br>
><br>
> Hum. Senhas podem ter espaços. Certo, mudança de estratégia. Nada de<br>
> usar split().<br>
><br>
> #!/usr/bin/perl<br>
> use strict;<br>
> use warnings;<br>
> use IO::Handle;<br>
><br>
> STDOUT->autoflush(1);<br>
> STDERR->autoflush(1);<br>
><br>
> # implement your password validation here<br>
> sub is_valid;<br>
><br>
> while (<>) {<br>
><br>
> # captura um username (sem espaços, seguido de um<br>
> # espaço, seguido de qualquer coisa ( a senha).<br>
> my ( $user, $password ) = m{^(\S+)\s(.+)$};<br>
> print "ERR\n" unless $password; # do not accept empty<br>
> print "OK\n" if is_valid( $user, $password );<br>
> }<br>
> __END__<br>
><br>
> Putamplexos!<br>
> --<br>
> Luis Motta Campos (a.k.a. Monsieur Champs) is a software engineer,<br>
> Perl fanatic evangelist, and amateur {cook, photographer}<br>
> _______________________________________________<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>
><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>
"Though we live in trying times, we're the ones who have to try"