Thread Stringvergleich geht nicht..
(18 answers)
Opened by introdev at 2019-10-07 17:36
system(...) liefert nicht die Ausgabe des externen Programms, sondern einen numerischen Rückgabewert (hat es funktioniert oder nicht).
Und deshalb siehst Du in der Ausgabe amd64 Das kommt aber nicht aus Deinem Perl-Programm. Um die Ausgabe eines externen Programms zu verarbeiten, kann open(my $fh, "-|", "mein-externes-kommando ..." mit anschließendem Lesen aus $fh genutzt werden: Code (perl): (dl
)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 #!/usr/bin/perl use strict; use v5.10; my $erg=open(my $fh, "-|",'dpkg --print-architecture'); if (not $erg) { say "open FAILED: $!"; exit 1; } my $zeile=<$fh>; chomp($zeile); # \n entfernen close($fh); my $amd_string="amd64"; if ( $zeile eq $amd_string ) { say "Ja, '$amd_string'"; } else { say "Nein, kein '$amd_string'"; } |