Schrift
[thread]6827[/thread]

Ausgabe einer Funktion unterdrücken

Leser: 1


<< >> 5 Einträge, 1 Seite
Gast Gast
 2005-03-30 14:55
#53086 #53086
Hallo, ich habe ein kleines Problem:

Mein Skript soll nachdem es durchgelaufen ist einen Wert auf STDOUT ausgeben, welcher von einem anderen Programm abgefangen wird.

Dummerweise wird in dem Skript eine Funktion aufgerufen die irgendwelche Debbuging-Meldungen ausgibt... Gibt es eine möglichkeit, dass ich die Funktion "ruhig stelle"?

Hier ein Beispiel:

Code: (dl )
1
2
3
4
connect_to_db("bla bla");
mach_was("foo");

print $rueckgabewert;


Die Funktion "connect_to_db" gibt irgendwelche lustigen Debbuging-Meldungen aus wie "Erfolgreich verbunden bla bla".
Das Skript darf allerdings nur $rueckgabewert ausgeben!

Wie kann ich dafür sorgen, dass connect_to_db() nichts ausgeben kann OHNE dass ich an der Funktion basteln muss?
Strat
 2005-03-30 15:40
#53087 #53087
User since
2003-08-04
5246 Artikel
ModeratorIn
[Homepage] [default_avatar]
du koenntest STDOUT irgendwohin umleiten, und vor dem rueckgabewert wieder auf standard stellen...
Code: (dl )
1
2
3
4
5
6
7
open (OUT, ">", "output.txt") or die "Error: couldn't open output.txt: $!\n";
my $oldStdOut = select(OUT);
# print geht nun in die Datei OUT => output.txt
# .....
select($oldStdOut);
# print geht nun wieder nach STDOUT
print $rueckgabewert;

je nach OS koenntest du als "Datei" auch /dev/nul oder aehnliches verwenden...
perl -le "s::*erlco'unaty.'.dk':e,y;*kn:ai;penmic;;print"
http://www.fabiani.net/
coax
 2005-03-30 17:10
#53088 #53088
User since
2003-08-11
457 Artikel
BenutzerIn
[default_avatar]
Werden die Debugging-Informationen auf dem Standardausgabe- oder eher auf dem Standardfehlerkanal ausgegeben ?
Bei letzteren kannst du sie beim Programmaufruf einfach irgendwo hinlenken.
Code: (dl )
1
2
3
% script.pl 2>/dev/null
# oder
% script.pl 2>script_error.log
,,Das perlt aber heute wieder...'' -- Dittsche
ptk
 2005-03-30 17:16
#53089 #53089
User since
2003-11-28
3645 Artikel
ModeratorIn
[default_avatar]
[quote=Strat,30.03.2005, 13:40]je nach OS koenntest du als "Datei" auch /dev/nul oder aehnliches verwenden...[/quote]
Besser: File::Spec->devnull
Strat
 2005-03-30 17:34
#53090 #53090
User since
2003-08-04
5246 Artikel
ModeratorIn
[Homepage] [default_avatar]
@ptk: danke, wieder was gelernt
perl -le "s::*erlco'unaty.'.dk':e,y;*kn:ai;penmic;;print"
http://www.fabiani.net/
<< >> 5 Einträge, 1 Seite



View all threads created 2005-03-30 14:55.