Schrift
[thread]13033[/thread]

Undefinierten Wert "vergleichen"



<< >> 10 Einträge, 1 Seite
Brenner
 2009-01-21 16:35
#118212 #118212
User since
2009-01-13
87 Artikel
BenutzerIn
[default_avatar]
Programm geht soweit, aber es werden Warnungen geworfen (use strict, use warnings).

Per if Abfrage vergleiche ich eine Variable mit einem vorgegeben Wert. SOweit alles ok. Da einzige was ich nicht ohne Warnungen abgefangen bekommen ist, wenn der Wert undefiniert ist.

Die Schleife wird trotzdem abgearbeitet, aber die Meldung "Use of un intitialized value in string...".
Gast Gast
 2009-01-21 16:56
#118214 #118214
Code (perl): (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
my $var=undef;
if(defined($var) && $var==1)
{
  # tu was ...
}
elsif(!defined($var))
{
  # variable nicht definiiert
}
else
{
  # variable != 1
}
Linuxer
 2009-01-21 17:00
#118215 #118215
User since
2006-01-27
3890 Artikel
HausmeisterIn

user image
Oder, um ein defined() zu sparen:

Code: (dl )
1
2
3
4
5
6
7
8
9
if ( !defined $var ) {
## nicht definiert
}
elsif ( $var eq 'string' ) {
## string vergleich erfolgreich
}
else {
## alle anderen fälle
}
meine Beiträge: I.d.R. alle Angaben ohne Gewähr und auf Linux abgestimmt!
Die Sprache heisst Perl, nicht PERL. - Bitte Crossposts als solche kenntlich machen!
GwenDragon
 2009-01-21 17:01
#118216 #118216
User since
2005-01-17
14749 Artikel
Admin1
[Homepage]
user image
Ich bevorzuge das mit weniger Tipperei:

Code: (dl )
1
2
3
4
5
6
7
8
9
if (!defined ($var)) {
# tue dies, wenn nicht definiert
}
elsif ($var == 1) {
# tue das wenn 1
}
else {
# tue sonstwas
}
Struppi
 2009-01-21 18:05
#118220 #118220
User since
2006-02-17
628 Artikel
BenutzerIn
[Homepage]
user image
oder:
Code (perl): (dl )
1
2
3
4
5
6
7
8
9
unless (defined ($var)) {
# tue dies, wenn nicht definiert
}
elsif ($var == 1) {
# tue das wenn 1
}
else {
# tue sonstwas
}
Crian
 2009-01-26 17:49
#118350 #118350
User since
2003-08-04
5871 Artikel
ModeratorIn
[Homepage]
user image
Nein nein nein, unless nicht mit elsif kombinieren. Im sinne der Wartbarkeit ist das schlechter Stil.
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
Struppi
 2009-01-26 18:23
#118354 #118354
User since
2006-02-17
628 Artikel
BenutzerIn
[Homepage]
user image
hehe, mich hat überhaupt gewundert das das geht, es scheint ein etwas neueres Feature zu sein.
Ich gebe zu, das war ein Reflex. Wenn ich
Code: (dl )
if(!...
sehe, denke ich an alte Newsgroup Zeiten wo immer auf unless statt if not hingewiesen wurde. Aber ich gebe dir recht, dass unless { ... } elsif verwirren kann.
renee
 2009-01-26 19:07
#118357 #118357
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
unless-elsif gibt es schon lange...

Schade dass es kein unless-elsless gibt *fg*
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/
GwenDragon
 2009-01-26 21:33
#118365 #118365
User since
2005-01-17
14749 Artikel
Admin1
[Homepage]
user image
Was ist an if (not ...) so schlecht, dass es unless (...) sein muss!?

Was würde Best Practise-Guru Damian dazu sagen!? ;)
Struppi
 2009-01-26 23:26
#118370 #118370
User since
2006-02-17
628 Artikel
BenutzerIn
[Homepage]
user image
Es ist eine Operation mehr
<< >> 10 Einträge, 1 Seite



View all threads created 2009-01-21 16:35.