ah<br><br>now we're talking :-)<br><br><div class="gmail_quote">2008/6/5 Luis Motta Campos <<a href="mailto:luismottacampos@yahoo.co.uk">luismottacampos@yahoo.co.uk</a>>:<br><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
<div class="Ih2E3d">Alexei Znamensky wrote:<br>
> Gabriel,<br>
><br>
> #2 perfeitamente correta, sim, ficou faltando o ERR em caso de senha<br>
> existente porém errada.<br>
<br>
</div>Ops. Falha minha. Volto a postar num minuto.<br>
<div class="Ih2E3d"><br>
> para a pergunta #1, sem entrarmos na questão de quão efetivo é ter um<br>
> mecanismo de authenticação se não há senha, o que você precisa fazer é<br>
> usar a regexp:<br>
><br>
> m{^(\S+)\s(.+)?$}<br>
><br>
> com a interrogação, denotando que a senha é um parâmetro opcional. Nesse<br>
> 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<br>
> no seu caso é algo que você quer (why??? oh god, why??)<br>
<br>
</div>Eu pensei melhor e acho que não é responsabilidade deste programa testar<br>
ou compreender nada sobre a senha: ele simplesmente repassa o que quer<br>
que ele encontrar para a função de autenticação, que determina a<br>
validade das credenciais e retorna o valor final.<br>
<div class="Ih2E3d"><br>
> b) da forma como você colocou ele vai testar se houve match ou não, o<br>
> que irá retornar sempre true, ou seja, o print "ERR\n" nunca será executado.<br>
><br>
> De qualquer maneira, pode ser removido.<br>
<br>
</div>A implementação mais nova é assim:<br>
<div class="Ih2E3d"><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>
</div><div class="Ih2E3d"> my ( $user, $password ) = m{^(\S+)(?:\s+(.+))?$};<br>
</div> print is_valid( $user, $password ) ? qq{OK\n} : qq{ERR\n};<br>
}<br>
__END__<br>
<br>
Espero que isso ajude.<br>
<div><div></div><div class="Wj3C7c"><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>
</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"