Salut a tous
j'ai encore une erreur que mon code me renvoit et je ne comprend pas la provenance etant donne que j'ai initialise le variable.
Use of uninitialized value in string ne at parvsde.pl line 154.
Use of uninitialized value in string ne at parvsde.pl line 154.
Use of uninitialized value in string ne at parvsde.pl line 154.
C:\Users\Desktop\Compare\Perl>
my ($errcode, $errtext, $param, $data);
($errcode, $errtext, $param) = parse_paramfile({filename =>$file1});
if ($errcode) {
print "ERROR: $errtext !";
exit(1);
}
($errcode, $errtext, $data) = parse_datafile({filename =>$file2});
if ($errcode) {
print "ERROR: $errtext !";
exit(1);
}
# use Data::Dumper;
# print Dumper($param), "\n\n", Dumper($data), "\n";
my $Fhhtml;
for my $k ( keys %{$data} ) {
if ( open( $Fhhtml, '>', "../WEBS/HTML/$k.csv" ) ) {
$k: $param->{$k}\n";
for my $i ( 0 .. $#{ $data->{$k} } ) {
if ( $param->{$k} ne $data->{$k}->[$i]->[1] ) { # voici la ligne 154 de mon code
print $Fhhtml "$data->{$k}->[$i]->[0]$data->{$k}->[$i]->[1]\n";
}
# Il manque des trucs
Posté par anaseto . Évalué à 4.
Il manque un bout de code, tu fermes une chaîne de caractères qui n'a jamais été ouverte
$k: $param->{$k}\n"
. Je suppose que c'est juste au copier-coller qu'il s'est passé quelque chose.Eh bien l'erreur est claire, ou bien
$param->{$k}
ou bien$data->{$k}->[$i]->[1]
n'a pas été défini. Tu est sûr que le->[1]
est bon ? (parce que$data->{$k}->[$i]
existe visiblement, mais pour nous pas moyen de savoir de quoi il s'agit, même pas possible de dire que c'est une référence à un tableau). Bref, sans connaître la structure de$data
, défini dans unparse_datafile
dont on ne sait rien, c'est difficile de t'en dire plus.[^] # Re: Il manque des trucs
Posté par Henri . Évalué à -8.
Anaseto,
c'est comme ca que le code est c'est un bout de code mais j'ai complete la fin du code
le probleme est que il me signale deja au paravant une erreur au niveau de la ligne 152 et 154 elle et marque
Use of uninitialized value in concatenation <.> or string at parvsde.pl line 152
Use of uninitialized value in string ne at parvsde.pl line 154
[^] # Re: Il manque des trucs
Posté par anaseto . Évalué à 3.
Ça veut dire que ton
$param->{$k}
n'est pas défini (ligne 152), donc queparse_paramfile
ne fait pas ce que tu crois.[^] # Re: Il manque des trucs
Posté par Framasky (site web personnel) . Évalué à 3.
C'pas compliqué :
$param->{$k}
n'est pas définie (uninitialized value
). Tu l'utilises dans une chaîne de caractères (l. 152), ce qu'il assimile à une concaténation et dans une comparaison (l. 154, lene
), et ça il aime pas, mais ce ne sont que des warnings, non ?Tu peux mettre
$param->{$k} = '' unless (defined($param->{$k}));
ligne 151 pour te débarrasser de l'erreur, mais il serait sans doute plus pertinent de comprendre pourquoi$param->{$k}
n'est pas définie.Being a sysadmin is easy. As easy as riding a bicycle. Except the bicycle is on fire, you’re on fire and you’re in Hell.
[^] # Re: Il manque des trucs
Posté par Henri . Évalué à -9.
Merci bien a tous la proposition de Framasky a fonctionner ce qui m'etonne est que ce code a fonctionne avec d'autre Fichier quand j'ai change les Fichiers il a commence a me renvover cette erreur.
Comme dit j'ai aussi un autre code qui me renvoit une erreur semblable j'ai utilise la Technique de
Framasky et je recoit ceci
C:\Users\Desktop\Sys\Script>perl sysvsde.pl
Global symbol "$colums1" requires explicit package name at sysvsde.pl line 97.
Global symbol "$colums1" requires explicit package name at sysvsde.pl line 97.
Execution of sysvsde.pl aborted due to compilation errors.
C:\Users\Desktop\Sys\Script>
[^] # Re: Il manque des trucs
Posté par Framasky (site web personnel) . Évalué à 2.
Va falloir que tu apprennes à te servir d'un moteur de recherche plutôt que de poser des questions aux gens.
Tiens : https://tontonroger.org/?q=+Global+symbol++requires+explicit+package+name+at++line&category_general=on
Pis après, tu regardes les sites qui te sont proposés.
Being a sysadmin is easy. As easy as riding a bicycle. Except the bicycle is on fire, you’re on fire and you’re in Hell.
[^] # Re: Il manque des trucs
Posté par Henri . Évalué à -10.
vous ete rigolo sur ce forum, certains n'ont pas encore compris que c'est pas oblige de repondre a une question si on la trouve bete on peut bien s'abstenir, que lance les mots deplace aux gens.
[^] # Re: Il manque des trucs
Posté par Sacha Trémoureux (site web personnel) . Évalué à 3.
Encore une fois, tu inverses totalement la situation. Peu importe la réaction des autres sur le forum, limite pour toi, tu t'en fiches complètement.
En revanche, le gros problème c'est le temps hallucinant que tu perds par manque de méthodes. Ça fait 4-5 mois que tu poses des questions relativement basiques sur ce forum. Chaque fois que l'on te donne une bonne réponse ici, c'est une opportunité pour toi d'apprendre qui disparaît.
Pour une énième fois, apprend à apprendre, ça doit devenir ta priorité. Et arrête d'envoyer pêtre les nombreuses personnes qui t'ont donné ce conseil de mille et une manière différente.
[^] # Re: Il manque des trucs
Posté par Henri . Évalué à -10.
tu as raison, je#'apprand a apprendre j'ai bien dit que ce code a fonctionne au paravant avec cettes donne
j'ai change les donne et les donnes sont identique au autre mais je suis surpri que cela ne marche,
et si bien je publi tout le code tu verras que j'ai declare la variable Colums1 plus haut donc quand quelqu'un envois des mot deplace pareil j'aurai encore attendu qu'il me dise de publie tout mon script.
en Programmation c'est la moindre des chose declarer au prealable une variable si l'on veut qu'elle s'affiche sur notre ecrant.
[^] # Re: Il manque des trucs
Posté par NeoX . Évalué à 5.
bienvenu dans le monde du developpement,
tu as ecrit un programme pour traiter un premier lot de fichier, tu as fait tes tests et tes recettes à partir de ce premier lot.
mais tu n'as pas pris le temps d'ecrire l'algoritme de traitement, qui aurait montré qu'il y a des cas particuliers qu'il faut penser à traiter.
[^] # Re: Il manque des trucs
Posté par Henri . Évalué à -10.
Merci de la remarque Neox
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.