Schrift
Wiki:Tipp zum Debugging: use Data::Dumper; local $Data::Dumper::Useqq = 1; print Dumper \@var;
[thread]11204[/thread]

Output eines Scriptes durchsuchen



<< >> 3 Einträge, 1 Seite
MFL
 2008-01-28 11:37
#105271 #105271
User since
2008-01-28
2 Artikel
BenutzerIn
[default_avatar]
Hallo Zusammen!

Ich hab ein Problem bei einem Arbeitsschritt, von dem ich eigentlich gedacht hätte, dass er unproblematisch wäre. (Vielleicht liegts an meiner Magen-Darm Erkrankung und mir fällt es einfach nich auf.)
Im Grund ist es ganz simpel: Ich möchte in einem Perl-Script eine weiteres Script in der Linux Shell ausführen und dessen Output bearbeiten.
Leider komme ich momentan nicht mal dazu, den Output in einer Variable abzulegen.
Ganz kurz und knackig sieht mein Script so aus:

Code (perl): (dl )
1
2
3
4
5
6
7
8
#!/usr/bin/perl -w
#
#
use strict;

my @lines=system("./script");
chomp(@lines);
print @lines;


Wenn ich das Script ausführe, bekomme ich den Output des scripts angezeigt, und das wars. Der Output erfolgt aber nicht durch print @lines, denn wenn ich das auskomentiere, ändert sich nichts.
Ich hab schon gegoogelt, aber nichts dazu gefunden. Ich hoffe, dass mir hier jemand helfen kann.
renee
 2008-01-28 11:42
#105272 #105272
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
system liefert den Output nicht zurück!

Ersetze my @lines=system("./script"); durch
Code: (dl )
1
2
my $res = qx{./script};
my @lines = split /\n/, $res;
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/
nepos
 2008-01-28 12:17
#105277 #105277
User since
2005-08-17
1420 Artikel
BenutzerIn
[Homepage] [default_avatar]
Oder mit open() unter Benutzung einer Pipe:
Code (perl): (dl )
1
2
3
4
5
open( my $cmd, "./skript|" )
    or die "Error executing script: $!";
my @output = <$cmd>; # Oder halt per while ( my $line = <$cmd> ) {...
close($cmd)
    or warn $! ? "Error closing script pipe: $! : "Exit status of script|: $?";
<< >> 3 Einträge, 1 Seite



View all threads created 2008-01-28 11:37.