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

thomas38
 2019-10-11 22:21
#190692 #190692
User since
2012-11-04
30 Artikel
BenutzerIn
[default_avatar]
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'";
}

View full thread Stringvergleich geht nicht..