perl: Use of uninitialized value

Um problema simples mais que incomoda, vamos resolver essa questão.

O problema

Veja esse programa simples

#!/usr/bin/perl
use strict;
use warnings;

my $i;

if($i eq "oi"){
    print("Foi");
}

Quando ele é executado uma mensagem é exibida

Use of uninitialized value $y in string eq at war line 7.

Não é um erro, apenas um aviso de que a variável não foi inicializada com valor.

Isso acontece quando você coloca o use warnings.

Existem algumas formas de se corrigir isso.

1 – Inicialize a vareável, ex:

my $i="";

2 – Retire o use warnings do seu script

#!/usr/bin/perl
use strict;

my $i;

if($i eq "oi"){
    print("Foi");
}

3 – Adicione no warnings “uninitialized” ao seu script.

#!/usr/bin/perl
use strict;
use warnings;
no warnings "uninitialized";

my $i;

if($i eq "oi"){
    print("Foi");
}

Simples não é mesmo.

Abraços.

Rodrigo Luis Silva

Gestor de equipes especialista em sistemas GNU/Linux com vasta experiência em gerenciamento de storage, virtualização, network, desenvolvimento e outros.

More Posts - Website

Follow Me:
Twitter

Deixe uma resposta

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *

Home Programação Perl perl: Use of uninitialized value