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.

