Schrift
Wiki:Tipp zum Debugging: use Data::Dumper; local $Data::Dumper::Useqq = 1; print Dumper \@var;
[thread]7873[/thread]

Gibt es ein "no operation" in Perl



<< |< 1 2 >| >> 12 Einträge, 2 Seiten
roli
 2006-04-10 15:41
#64638 #64638
User since
2004-12-31
424 Artikel
BenutzerIn
[default_avatar]
Hi,

ich wuerde gerne wissen ob es ein "no operation" Befehl in Perl gibt.
In Shell-Scripten verwende ich oefters mal
Code: (dl )
1
2
3
4
5
6
if [ meine_kompliziete_bedingung ]
then
:
else
tu_irgendetwas
fi

Mir geht es darum, das wenn ich testen moechte, ob die Bedingung nicht ( ! ) zutrifft, das dann etwas passiert, wenn sie aber zutrifft soll nichts geschehen. Es ist aber manchmal nicht wirklich leicht/verstaendlich, eine Bedingung zu negieren.
Roland
--
"Steh vorn, während du fragst;
sitzen soll, wer antwortet."
Aus "Die Edda des Snorri Sturluson" "Gylfis Täuschung" Strophe 2
renee
 2006-04-10 15:45
#64639 #64639
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
Du kannst einfach
Code: (dl )
1
2
3
unless($bedingung){ 
# tu was
}


machen!
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/
Strat
 2006-04-10 15:48
#64640 #64640
User since
2003-08-04
5246 Artikel
ModeratorIn
[Homepage] [default_avatar]
genau, oder auch
Code: (dl )
1
2
3
if (not $bedingung) {
...
}

(wobei ich auch meist unless bevorzuge)
perl -le "s::*erlco'unaty.'.dk':e,y;*kn:ai;penmic;;print"
http://www.fabiani.net/
Crian
 2006-04-10 17:28
#64641 #64641
User since
2003-08-04
5873 Artikel
ModeratorIn
[Homepage]
user image
Ansonsten kannst du beliebige Mengen an Semikoli oder leere geschweifte Klammerpaare einstreuen... die tun auch nichts =)

Aber die Lösung mit unless / if not / if ! ist schöner in diesem Fall.
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
bloonix
 2006-04-10 17:31
#64642 #64642
User since
2005-12-17
1615 Artikel
HausmeisterIn
[Homepage]
user image
[quote=roli,10.04.2006, 13:41]
Code: (dl )
1
2
3
4
5
6
if [ meine_kompliziete_bedingung ]
then
 :
else
 tu_irgendetwas
fi
[/quote]
ot: das geht auch in einer shell...

Code: (dl )
1
2
3
4
if [ ! meine_kompliziete_bedingung ]
then
 tu_irgendetwas
fi
\n\n

<!--EDIT|opi|1144676090-->
What is a good module? That's hard to say.
What is good code? That's also hard to say.
One man's Thing of Beauty is another's man's Evil Hack.
roli
 2006-04-10 17:50
#64643 #64643
User since
2004-12-31
424 Artikel
BenutzerIn
[default_avatar]
Hi opi,

[quote=opi,10.04.2006, 15:31]
Code: (dl )
1
2
3
4
if [ ! meine_kompliziete_bedingung ]
then
tu_irgendetwas
fi
[/quote]
ist mir schon bekannt, nur wenn "meine_komplizierte_bedingung" nicht ein simples $a -gt 5 ist (dann waere es ja nicht kompliziert :cool: ), sondern aus mehreren einzelnen Bedinungungen die mit "und" und/oder "oder" verbunden sind, ggf. noch "geklammert", dann wird's durch das negieren nicht uebersichtlicher.
Zumal, ich persoenlich, es schwerer finde, eine negierte Bedingung zu lesen, und zu begreifen was gefragt ist.\n\n

<!--EDIT|roli|1144677076-->
Roland
--
"Steh vorn, während du fragst;
sitzen soll, wer antwortet."
Aus "Die Edda des Snorri Sturluson" "Gylfis Täuschung" Strophe 2
renee
 2006-04-10 17:57
#64644 #64644
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
Kann man bei der Shell nicht die Bedingung klammern und dann einfach alles negieren?
Also
Code: (dl )
if [ ! (die komplizierte bedingung)]
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/
betterworld
 2006-04-10 18:00
#64645 #64645
User since
2003-08-21
2614 Artikel
ModeratorIn

user image
[quote=roli,10.04.2006, 15:50]Hi opi,

[quote=opi,10.04.2006, 15:31]
Code: (dl )
1
2
3
4
if [ ! meine_kompliziete_bedingung ]
then
tu_irgendetwas
fi
[/quote]
ist mir schon bekannt, nur wenn "meine_komplizierte_bedingung" nicht ein simples $a -gt 5 ist (dann waere es ja nicht kompliziert :cool: ), sondern aus mehreren einzelnen Bedinungungen die mit "und" und/oder "oder" verbunden sind, ggf. noch "geklammert", dann wird's durch das negieren nicht uebersichtlicher.
Zumal, ich persoenlich, es schwerer finde, eine negierte Bedingung zu lesen, und zu begreifen was gefragt ist.[/quote]
Du kannst ja auch in einer Shell Klammern setzen.
Code: (dl )
1
2
3
4
if ! { [[ 4 == 5 ]] || false; }
then
echo x
fi
roli
 2006-04-10 19:04
#64646 #64646
User since
2004-12-31
424 Artikel
BenutzerIn
[default_avatar]
Hi ihr 2,

dem steht halt meine Abneigung "negativer Fragen" gegenueber.
Wenn ich jemanden Frage "Wir sehen uns morgen nicht, oder?", und er antwortet "nein", heisst das dann wir sehen uns, oder sehen wir uns nicht?
Klar kann man da mit Logik à-la "Minus mal Minus ist Plus" drann gehen, aber Menschen sind nicht (immer) logisch. Der eine antwortet nein wenn wir uns nicht sehen, der andere ja! Von daher versuche ich Fragen moeglichst "positiv" zu formulieren, das macht es fuer alle Beteiligten leichter (eindeutiger).
Roland
--
"Steh vorn, während du fragst;
sitzen soll, wer antwortet."
Aus "Die Edda des Snorri Sturluson" "Gylfis Täuschung" Strophe 2
Relais
 2006-04-10 19:40
#64647 #64647
User since
2003-08-06
2254 Artikel
ModeratorIn
[Homepage] [default_avatar]
[quote=roli,10.04.2006, 17:04][...] daher versuche ich Fragen moeglichst "positiv" zu formulieren, das macht es fuer alle Beteiligten leichter (eindeutiger).[/quote]
Das sort für Optimismus, bessere Laune und führt allmählich zum globalen Frieden! =)

Im Ernst macht es Programme vor allem lesbarer. Wenn Du auf etwas negatives testen willst reicht ja eine einfache Verneinung.

Edit: ob-on-topic: no ist in Perl das gedachte Gegenteil zu use...
Siehe perlmod
Beispiel: no warnings qw/initialized/; # manchmal...\n\n

<!--EDIT|Relais|1144684909-->
Erst denken, dann posten --
27. Deutscher Perl- u. Raku -Workshop 12. bis 14. Mai 2025 in München.

Winter is Coming
<< |< 1 2 >| >> 12 Einträge, 2 Seiten



View all threads created 2006-04-10 15:41.