Schrift
[thread]7121[/thread]

Unless



<< |< 1 2 3 >| >> 27 Einträge, 3 Seiten
Spider-Mann
 2005-07-11 01:16
#56229 #56229
User since
2005-07-06
23 Artikel
BenutzerIn
[default_avatar]
Hallo und guten Abend. Ich traue mich ja fast nicht zu fragen, aber dieses
Code: (dl )
1
2
3
4
5
if (!...) {
...
} else {
...
}
kann ich ja hierdurch
Code: (dl )
1
2
3
4
5
unless (...) {
...
} else {
...
}
ersetzen.
Aber wodurch kann ich dies
Code: (dl )
1
2
3
4
5
6
7
if (!...) {
...
} elsif (!...) {
...
} else {
...
}
ersetzen?
esskar
 2005-07-11 01:32
#56230 #56230
User since
2003-08-04
7321 Artikel
ModeratorIn

user image
durch ein
Code: (dl )
1
2
3
4
5
6
unless(...) {
} else {
  unless(...) {
  } else {
  }
}
\n\n

<!--EDIT|esskar|1121031188-->
pq
 2005-07-11 01:35
#56231 #56231
User since
2003-08-04
12208 Artikel
Admin1
[Homepage]
user image
das solltest du so lassen. unless eignet sich hervorragend für sowas wie
usage(), exit unless $bedingung;
aber sobald mindestens ein else ins spiel kommt, ist es meistens am besten, man steigt
auf if/else um, das ist einfach besser lesbar.
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
Spider-Mann
 2005-07-11 01:37
#56232 #56232
User since
2005-07-06
23 Artikel
BenutzerIn
[default_avatar]
Stimmt, aber da finde ich die Ausrufezeichen dann doch schöner.
Strat
 2005-07-11 18:07
#56233 #56233
User since
2003-08-04
5246 Artikel
ModeratorIn
[Homepage] [default_avatar]
Code: (dl )
1
2
3
4
5
6
7
8
9
unless (.....) {

}
elsif (not ( .... ) ) {

}
else {

}

oder so aehnlich?
perl -le "s::*erlco'unaty.'.dk':e,y;*kn:ai;penmic;;print"
http://www.fabiani.net/
Ronnie
 2005-07-11 18:10
#56234 #56234
User since
2003-08-14
2022 Artikel
BenutzerIn
[default_avatar]
@strat: AFAIR geht elsif mit unless nicht.
renee
 2005-07-11 18:31
#56235 #56235
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
elsif funktioniert auch mit unless:
Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
#! /usr/bin/perl

use strict;
use warnings;my $var = 0;

unless($var == 0){
print "Nicht 0";
}
elsif($var == 0){
print "Gleich 0";
}


Ausgabe:
Code: (dl )
1
2
~/entwicklung 73> perl unless.pl 
Gleich 0

Ausgabe:[code]
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/
Ronnie
 2005-07-11 18:36
#56236 #56236
User since
2003-08-14
2022 Artikel
BenutzerIn
[default_avatar]
[quote=renee,11.07.2005, 16:31]elsif funktioniert auch mit unless[/quote]
hmm, meinte das mal irgendwo gelesen zu habe.
Taulmarill
 2005-07-11 18:37
#56237 #56237
User since
2004-02-19
1750 Artikel
BenutzerIn

user image
anscheinend merkt der parser wenn unless mit else oder elsif verwendet wird und schreibt das unless in ein if not um. wenn man das programm mit der option -MO=Deparse ausführt, sieht man, was der parser daraus macht.
$_=unpack"B*",~pack"H*",$_ and y&1|0& |#&&print"$_\n"for@.=qw BFA2F7C39139F45F78
0A28104594444504400 0A2F107D54447DE7800 0A2110453444450500 73CF1045138445F4800 0
F3EF2044E3D17DE 8A08A0451412411 F3CF207DF41C79E 820A20451412414 83E93C4513D17D2B
renee
 2005-07-11 18:43
#56238 #56238
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
@Taulmarill: ein guter Hinweis!

Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
~/entwicklung 76> perl -MO=Deparse unless.pl 
use warnings;
use strict 'refs';
my $var = 0;
if (not $var == 0) {
print 'Nicht 0';
}
elsif ($var == 0) {
print 'Gleich 0';
}
unless.pl syntax OK
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/
<< |< 1 2 3 >| >> 27 Einträge, 3 Seiten



View all threads created 2005-07-11 01:16.