[Cascavel-pm] dúvida quanto aos operadores "|" e "||"

Ednardo Lobo ednardo em elobo.cjb.net
Segunda Junho 9 06:55:54 CDT 2003


On Mon, Jun 09, 2003 at 08:20:12AM -0300, Alceu R. de Freitas Jr. wrote:
> Bom dia,
> 
> Eu vi ontem essa construção:
> 
> untill (flock FILE EX_LOCK | SH_LOCK) {
> 
> algum código
> 
> }
> 
>

> Como eu  deveria interpretar essa  construção? Qual a  diferença entre
> usar  "|" e  "||"? Em  testes de  abertura de  arquivos, por  exemplo,
> usamos o "||":
>
> open (FILE,"/etc/groups") || die "Não consegui abrir o arquivo";
>
> Que significa  "faça isso,  senão faça  isso" o  que funciona  como um
> if-then-else.
>
> Sei  que  parece algo  meio  irrelevante  para  se preocupar,  mas  eu
> procurei algo sobre isso e não encontrei!
>
> Se alguém puder me explicar, eu agradeço!
> 
> []´s
> 

    Os operadores '|' e '&', diferentemente de '||' e '&&', realizam uma
operação lógica a nível de bits.

    Sendo:
        
            LOCK_EX = 2
            LOCK_SH = 1

            $r1 = LOCK_EX | LOCK_SH
            $r2 = LOCK_EX & LOCK_SH

    Teremos:            

            print $r1    # imprime 3
            print $r2    # imprime 0

    Ou seja:                

        ==========      ==========
        Oper: |         Oper: &
        ----------      ----------
        2 -> 00010      2 -> 00010
        1 -> 00001      1 -> 00001
             -----           -----
        (3)  00011      (0)  00000
        ==========      ==========
             
-- 
    Ednardo Lobo - www.elobo.cjb.net, www.lobosnet.com

    Por favor, evitem enviar anexos no formato MS-Office, obrigado!
    Veja: http://www.fsf.org/philosophy/no-word-attachments.pt.html



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