Thread Problem mit Funktionsaufruf (2 answers)
Opened by Turtleman at 2005-03-01 12:07

Turtleman
 2005-03-01 12:07
#52190 #52190
User since
2004-08-11
9 Artikel
BenutzerIn
[default_avatar]
Hallo Zusammen,

nach längerer Zeit bin ich mal wieder mit Perl zugange und habe auch gleich ein Problem. Irgendwie verstehe ich die Logik einfach nicht, wieso dieser Fehler auftritt. Die Variable $output wird gesplittet um herauszufinden, ob sie eine Zahl enthält. Je nachdem ob eine Zahl gefunden wird, wird @message mit dem einen oder anderem Inhalt gefüllt. Leider verhindert ein Funktionsaufruf der log. erst später stattfindet den korrekten Ablauf.

Hier mal mein Code:

Code: (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
25
26
27
28
29
30
31
32
33
34
35
@request = split(/ /,$output); # splitten des outputs in Teile (nach Leerstellen)
for($i=0;$i<=$#request;$i++) {
if ($request[$i] =~ /\d{3,5}/) {
$requestid = $request[$i];
$correct = "true";
}
}
# wenn $correct = true wird @message mit einem bestimmten inhalt gefüllt

# Füllen von @message

print @message; # Testweise ausgabe
&sendresponse($sender); #Aufruf des Autoresponders

# einige weitere Kommandos bis zum ende

sub sendresponse()
{
my $toaddr = $_[0];

use Net::SMTP;
my $smtphost = '###';
my $account = '###';
my $fromaddr = '###';

my $smtp = Net::SMTP->new($smtphost,
Hello => $account,
Debug => 1);
my $OK;  
$OK = $smtp->mail($fromaddr);  
$smtp->recipient($toaddr);  
$OK = $smtp->data(\@message);  
$OK = $smtp->quit();

} ## sub sendresponse


Der Aufruf von Sendresponse kommt ja in der Abfolge später, als das Testweise ausgeben der Message. Leider bekomme ich immer, wenn ich den Funktionsaufruf nicht auskommentiere einen Fehler, d.h. die Mail wird verschickt, ich erhalte als Ausgabe auf der Kommandozeile und Mail aber nur HASH(0x20aeb usw.) ohne sonstigen Inhalt. Kommentiere ich ihn aus, funktioniert alles.

Wenn mir jemand helfen könnte wäre ich sehr dankbar.

Gruß
Christian

View full thread Problem mit Funktionsaufruf