Variablen Überprüfen perl

  • Ersteller aktivfrühstück
  • Erstellt am
A

aktivfrühstück

Eroberer
Hallo habe ein langes Perl Skript geschrieben. (Mit vielen Variablendefinitionen)
Durch ständige Umschreibungen und so kann es sein, dass einige erstellte Variablen nur noch definiert werden, aber gar nicht merh zum EInsatz kommen.
Gibt es eine Möglichkeit verwaiste Variablen ausfindig zu machen ohne jetzt gezielt manuell jede einzelne zu Überprüfen?
Grüße
 
Ich bin mir nicht sicher, ob perl bei den Warnings ungenutzte Variablen ausgibt. Sonst wüsste ich auch keine Möglichkeit.
 
Hallo habe ein langes Perl Skript geschrieben. (Mit vielen Variablendefinitionen)
Durch ständige Umschreibungen und so kann es sein, dass einige erstellte Variablen nur noch definiert werden, aber gar nicht merh zum EInsatz kommen.
Gibt es eine Möglichkeit verwaiste Variablen ausfindig zu machen ohne jetzt gezielt manuell jede einzelne zu Überprüfen?
Grüße

Du koenntest dein Tool auswerten um an die Variablen zu kommen und dann mittels "grep -c" rausfinden, ob sie nur einmal auftritt. Ist nicht 100% verlaesslich, aber fuer grobe Arbeiten sicherlich ausreichend.

Ansonsten kann ich dir nur empfehlen, an deinem Programmierstil zu arbeiten :).
 
Eclipse unterstützt so etwas für Java ... vielleicht macht das Perl-Plugin für Eclipse das auch?
 
Nein, ich habs grad getestet. Vllt. verwechselst du das mit dem GCC -Wall Switch? :)

Da bin ich anderer Meinung. Die Option -w gibt aus, wenn eine Variable nur einmal benutzt wird:
Code:
Name "main::VAR" used only once: possible typo at -e line 1.
Grüße
Engywuk
 
Danke Engywuk fürs ausprobieren, genau das hab ich gemeint :-)
 
Mhhhh. Ich erinner mich auch daran, mal so eine Meldung gesehen zu haben. Aber ich kriege sie nicht hin:

lala.pl
Code:
#!/usr/bin/perl -wl

use strict;

my $lala;
my $lala2 = "lala";

Code:
satire)0)7:44)506)~/dev} ./lala.pl
satire)0)7:45)506)~/dev}
 
Da bin ich anderer Meinung. Die Option -w gibt aus, wenn eine Variable nur einmal benutzt wird:
Code:
Name "main::VAR" used only once: possible typo at -e line 1.
Grüße
Engywuk

Öh seltsam. Hab ich vorher evt. -W gemacht beim Perl Aufruf?? Kann gut sein, sorry. :think:
 
Ohne jetzt Lust zu haben das auszuprobieren, aber ein

Code:
use strict;
use warnings;

gibt dir __definitiv__ nur einmal benutzte Variablen aus.

EDIT:

Oho, da hab ich mich ja mal richtig getäuscht. Hab's gerade doch mal kurz getestet, und tatsächlich, es wird nichts ausgegeben.
 
Zuletzt bearbeitet:
Nö, @smg du hast keinen Fehler gemacht, bzw. das spielt keine Rolle.
-W ist das Gleiche wie use warnings "all".
Das kannst du prüfen, indem du die Variable $^W ausgibst.
Kleiner Test:
$ cat test.pl
#!/usr/bin/perl -w
use strict;
print "Setting \$^W $^W\n";
my ($a, $b,$c,$u);
for my $l (1..10){
printf "%02d\n" ,$l;
$a=$l;
}
print "Fertig\n";
./test.pl
Setting $^W 1
01
02
03
04
05
06
07
08
09
10
Fertig

$ cat test.pl
#!/usr/bin/perl -W
use strict;
print "Setting \$^W $^W\n";
my ($a, $b,$c,$u);
for my $l (1..10){
printf "%02d\n" ,$l;
$a=$l;
}
print "Fertig\n";
./test.pl
Setting $^W 1
01
02
03
04
05
06
07
08
09
10
Fertig

Hier ist beidesmal das Flag warning gesetzt.
Beidesmal werden die nur declarierten Variablen nicht ausgegeben!

$ perl -v

This is perl, v5.8.8 built for i486-linux-gnu-thread-multi

Soviel mal dazu.
Von welcher Version sprechen wir hier nun?

Gruß Wolfgang
 
Code:
#!/usr/bin/perl -w
my $a;
my $b = 5;
keine Warnung, egal ob strict oder nicht

Code:
#!/usr/bin/perl -w
$a;
$b = 5;
Useless use of a variable in void context at varwarning.pl line 2.
Name "main::a" used only once: possible typo at varwarning.pl line 2.
Name "main::b" used only once: possible typo at varwarning.pl line 3.

perl -v

This is perl, v5.8.8 built for i486-linux-gnu-thread-multi
 

Ähnliche Themen

Keine grafische Oberfläche (Debian Installation)

Welches Linux/Unix für ehemaligen OSX Nutzer?

Inhalt einer Variablen aus Batch an Shellscript übergeben

Zeichenkette per Skript an shell übergeben

Perl Code welcher in Variable steht ausführen, ist dies möglich?

Zurück
Oben