[Rio-pm] negacao com regex /^x/

Victor Ramos victornrm em gmail.com
Terça Abril 7 13:30:22 PDT 2009


me surgiu uma duvida, não sei c eh um bug do perl o.0
vejamos
:~$date
Ter Abr  7 17:20:00 BRT 2009
:~$cat facu_ou_folga.pl
if ( `date` =~ /Sab|Dom/) {
  print "Folga!\n";
} else {
  print "Facu\n";
}
:~$perl facu_ou_folga.pl
Facu

perfeito
agora, tentando ao contrario usando a negacao.
:~$cat facu_ou_folga.pl
if ( `date` =~ /^(Sab|Dom)/) {
  print "Facu!\n";
} else {
  print "Folga\n";
}
:~$perl facu_ou_folga.pl
Folga
:~$

Oque ouve? estou usando a negação "^", a logica deveria ser, caso não achar
Sab ou Dom,  tirei como exemplo do learning perl(A.13. Answers to Chapter 14
Exercises), q tem um assim:
    if (`date` =~ /^S/) {
      print "go play!\n";
    } else {
      print "get to work!\n";
    }

com um obs: "If we had to use this in a real-world program, we'd probably
use the pattern /^(Sat|Sun)/"

eu percebi que posso negar com o not (não logico) "!" :
:~$cat facu_ou_folga.pl
if ( `date` =~ !/(Sab|Dom)/) { # unless ( `date` =~ /(Sab|Dom)/) {
  print "Facu!\n";
} else {
  print "Folga\n";
}
:~$perl facu_ou_folga.pl
Facu!
:~$

alguem me socorre?
-------------- Próxima Parte ----------
Um anexo em HTML foi limpo...
URL: <http://mail.pm.org/pipermail/rio-pm/attachments/20090407/487a2acb/attachment.html>


Mais detalhes sobre a lista de discussão Rio-pm