Schrift
[thread]7218[/thread]

Nicht deklarierte our Variablen erkennen



<< >> 9 Einträge, 1 Seite
marco42
 2005-08-18 11:38
#57269 #57269
User since
2005-08-16
6 Artikel
BenutzerIn
[default_avatar]
Hallo zusammen,

ich habe ein kleines Problem mit undefinierten "our"-Variablen...

Ich definiere in Modul A eine Variable x:

Code: (dl )
1
2
# Modul A.pm
our $x;


in Skript B.pl binde ich Modul A.pm ein und nutze $x:

Code: (dl )
1
2
3
4
use lib ".";
use A;

$A:x = "soso";


Wenn ich aber $x falsch schreibe, z.B.:

Code: (dl )
$A:xFALSCH = "ohoh";


beschwert sich mein perl (v5.8.7 built for MSWin32-x86-multi-thread) nicht!

Wie kann ich Perl dazu bringen, sich über nicht deklarierte our Variablen zu beschweren?

Cheers

Marco\n\n

<!--EDIT|marco42|1124350755-->
esskar
 2005-08-18 11:56
#57270 #57270
User since
2003-08-04
7321 Artikel
ModeratorIn

user image
Code: (dl )
use strict;


sowohl im modul; als auch im script!
pq
 2005-08-18 11:59
#57271 #57271
User since
2003-08-04
12208 Artikel
Admin1
[Homepage]
user image
use warnings; => Wiki:use strict
Always code as if the guy who ends up maintaining your code will be a violent psychopath who knows where you live. -- Damian Conway in "Perl Best Practices"
lesen: Wiki:Wie frage ich & perlintro Wiki:brian's Leitfaden für jedes Perl-Problem
renee
 2005-08-18 12:06
#57272 #57272
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
nee, use strict sagt da gar nix:
Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
(reneeb) Thu Aug 18 10:04:55 [-bash]
~/entwicklung 202> cat >testA.pl
#!/usr/bin/perl
use strict;
use warnings;
use lib qw(.);
use A;

print $A::x,"\n";
$A::xFALSCH = "ohoh";
print $A::xFALSCH;
(reneeb) Thu Aug 18 10:04:55 [-bash]
~/entwicklung 202> cat >A.pm
package A;

use strict;
our $x = 99;

1;
(reneeb) Thu Aug 18 10:05:29 [-bash]
~/entwicklung 203> perl testA.pl
99
ohoh
OTRS-Erweiterungen (http://feature-addons.de/)
Frankfurt Perlmongers (http://frankfurt.pm/)
--

Unterlagen OTRS-Workshop 2012: http://otrs.perl-services.de/workshop.html
Perl-Entwicklung: http://perl-services.de/
pq
 2005-08-18 15:23
#57273 #57273
User since
2003-08-04
12208 Artikel
Admin1
[Homepage]
user image
aber warnings sagt was, wenn du eine variable nur einmal benutzt. in
deinem beispiel hast du den code so abgewandelt, dass du eine falsche
variable zweimal benutzt. da es eine package-variable ist, sagt natürlich
auch strict nichts.
Always code as if the guy who ends up maintaining your code will be a violent psychopath who knows where you live. -- Damian Conway in "Perl Best Practices"
lesen: Wiki:Wie frage ich & perlintro Wiki:brian's Leitfaden für jedes Perl-Problem
renee
 2005-08-18 15:36
#57274 #57274
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
ok, stimmt...
OTRS-Erweiterungen (http://feature-addons.de/)
Frankfurt Perlmongers (http://frankfurt.pm/)
--

Unterlagen OTRS-Workshop 2012: http://otrs.perl-services.de/workshop.html
Perl-Entwicklung: http://perl-services.de/
marco42
 2005-08-18 19:28
#57275 #57275
User since
2005-08-16
6 Artikel
BenutzerIn
[default_avatar]
Hallo zusammen,

vielen Dank für eure zahlreichen Antworten. Ich hatte sogar schon ganz vorbildlich use strict und use warnings im Skript und im Modul eingebunden! Aber durch einen typo habe ich eine ähnlich geschriebene Variable statt der richtigen benutzt, also kam auch keine Fehlermeldung :blush:

Aber durch eure Antworten war ich sicher, alles richtig gemacht zu haben und habe den typo viel schneller gefunden :)

Viele Grüße

Marco
Crian
 2005-08-22 11:41
#57276 #57276
User since
2003-08-04
5866 Artikel
ModeratorIn
[Homepage]
user image
Merke: zu ähnliche Variablennamen sind eine Quelle für dubiose Fehler. ;)
s--Pevna-;s.([a-z]).chr((ord($1)-84)%26+97).gee; s^([A-Z])^chr((ord($1)-52)%26+65)^gee;print;

use strict; use warnings; Link zu meiner Perlseite
Strat
 2005-08-22 14:44
#57277 #57277
User since
2003-08-04
5246 Artikel
ModeratorIn
[Homepage] [default_avatar]
nicht ganz zum thema passend, aber interessant finde ich die CPAN-Module Devel::FindGlobals und Devel::WarnGlobal
perl -le "s::*erlco'unaty.'.dk':e,y;*kn:ai;penmic;;print"
http://www.fabiani.net/
<< >> 9 Einträge, 1 Seite



View all threads created 2005-08-18 11:38.