[Ruhr-pm] Perl

Ingo Wichmann iw at taikonet.de
Fr Sep 11 01:41:56 PDT 2009


Brian Morks schrieb:

> Danke für die Antworten. 
> Bezüglich eurer Fragen:
> - Die Parameterübergabe ist denke ich mal über die Kommandozeile, muss ich das dann einfach mit zwei Bindestrichen einleiten oder?
> - Die Ergebnisse der Exe sehen z.B.  so aus: 21.341 1.000 5.391 Wobei nur die 21.341 verglichen werden sollte

Dann kannst Du das mit open machen:

===============================================
# Datei öffnen und Ausgabe nach $exe_out lenken:
open my $exe_out, 'c:/blackbox.exe |'
  or die $! ;

my $summe;
# Ausgabe Zeile für Zeile einlesen:
while ( my $line = <$exe_out> ) {
  # Ausgabe mit Regulärem Ausdruck verarbeiten:
  my ($zahl) = ($line =~ m/
   ^(\d+\.\d+)
  /x);
  $summe += $zahl;
}
print $summe;
===============================================

Oder etwas kürzer, aber weniger einsteigerfreundlich::

===============================================
# Datei öffnen und Ausgabe nach $exe_out lenken:
open my $exe_out, './data.txt |'
  or die $! ;

my $summe;
# Ausgabe Zeile für Zeile einlesen:
while ( <$exe_out> ) {
  # Ausgabe mit Regulärem Ausdruck verarbeiten:
  my ($zahl) = (m/ ^(\d+\.\d+) /x);
  $summe += $_;
}
print $summe;
===============================================

Viele Grüße,

Ingo


Mehr Informationen über die Mailingliste Ruhr-pm