Thread Eindeutige Liste aller Zeichen im String (32 answers)
Opened by roli at 2008-03-11 18:39

renee
 2008-03-14 16:42
#107063 #107063
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
Array+2008-03-14 15:30:21--
Eine Frage hätte ich noch: Wenn ein beliebiger Befehl nur TRUE oder FALSE zurückliefert, liefert er doch bei TRUE eine 1 zurück. Bei FALSE aber doch keine 0 sondern einen Leerstring, oder?
Man kann aber nicht sagen, dass undefined, 0 und ein Leerstring dasselbe wären, obwohl alle falsch sind? Da habe ich noch ein paar Verständigungsschwierigkeiten.


Was "wahr" und was "falsch" ist, ist in Perl nicht so eindeutig wie in anderen Programmiersprachen. Auch eine "2" ist "wahr" und als "falsch" werden noch mehr Sachen als nur undef, Leerstring und 0 angesehen. Z.B. auch "0E0"...

Code: (dl )
C:\>perl -e "print 'yes' if( 0E0 );


Was Perl intern macht, geht im Prinzip an dieser Stelle schon wieder zu weit. Merken sollte man sich, dass alles was Du genannt hast und alle möglichen Darstellungen von "0" als "falsch" gilt und alles andere als "wahr".

Auch Referenzen (die auch leer sein können) und negative Zahlen, sind "wahr":
Code: (dl )
1
2
3
4
C:\>perl -e "print 'yes' if( {} );"
yes
C:\>perl -e "print 'yes' if(-3);"
yes


Man bekommt mit der Zeit aber ein ziemlich gutes Gefühl dafür, was "wahr" und was "falsch" ist

Für diejenigen, die sich dafür interessieren:

Perl arbeitet bei "falsch" mit einem "sv_no", wie dieser Code zeigt:
Code: (dl )
1
2
3
4
5
6
7
8
C:\>perl -MO=Concise,-exec -e "print !2"
1 <0> enter
2 <;> nextstate(main 1 -e:1) v
3 <0> pushmark s
4 <$> const[SPECIAL sv_no] s
5 <@> print vK
6 <@> leave[1 ref] vKP/REFC
-e syntax OK
und bei "wahr" mit "sv_yes"...
Code: (dl )
1
2
3
4
5
6
7
8
C:\>perl -MO=Concise,-exec -e "print !0"
1 <0> enter
2 <;> nextstate(main 1 -e:1) v
3 <0> pushmark s
4 <$> const[SPECIAL sv_yes] s
5 <@> print vK
6 <@> leave[1 ref] vKP/REFC
-e 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/

View full thread Eindeutige Liste aller Zeichen im String