Thread Stringvergleich geht nicht.. (18 answers)
Opened by introdev at 2019-10-07 17:36

introdev
 2019-10-07 17:36
#190659 #190659
User since
2018-11-20
29 Artikel
BenutzerIn
[default_avatar]
Perl Stringvergleich klappt nicht

Perl-Code:


Code: (dl )
1
2
3
4
5
6
7
8
# J.M., 2019-10-07 {
sub getPlatform()
{
my $platform = system('dpkg --print-architecture');
$platform =~ s/^\s+|\s+$//g;
return $platform;
}
# } J.M., 2019-10-07



Die Funktion wird so angewendet, ganz oben im Quelltext ist dann noch die Deklaration des Methodenkopfs:

Code: (dl )
1
2
3
4
5
6
7
8
9
10
        # J.M., 2019-10-07 {
my $platform = getPlatform();
print $platform . '\n';
if( chomp($platform) eq "amd64" ) {
system('touch /tmp/amd64');
sleep(10);
}else{
print 'nein\n';
}
# } J.M., 2019-10-07



Resultat:

Quote
amd64
0\nnein



Also:

- "print $platform" gibt mir offensichtlich "amd64" aus...
- Sicherheitshalber trimme ich den String, den "dpkg --print-architecture" ausgibt
- ...und doch ist `chomp($platform) eq "amd64"` false, wie auch ohne chomp: `$platform eq "amd64"`


Völlig unlogisch, das Ganze...

P.S.: "eq" heisst doch "equals" und ist für Stringvergleiche gedacht, oder??
Freundliche Grüsse,
Jan

View full thread Stringvergleich geht nicht..