Hallo Klausi,
Ist die Definition my (...) zu Programmbeginn nicht gleichwertig zu use vars ...?
use strict;
my (@names, @values, $mail_text, $name, $value); <===== alt
my (@names, @values, $mail_text); <===== neu (ok)
Wie my funktioniert sagt dir perldoc
......
use strict;
use vars qw(@EXPORT_OK $MailRegEx); <===== alt
use vars qw(@EXPORT_OK $MailRegEx $name $value); <===== neu (ok)
sub text_build
{
$mail_text = $mail_text . $name . ": " . $value . "\n";
}
wenn die Funktion allerdings nach der Deklaration der Variablen steht, müsste name & value in jedem Fall definiert sein. my und use vars bzw. our kann in diesem Fall analog verwendet werden, weil du dich im gleichen Scope befindest (sprich Namensraum, also Main::).
text_build();
müsste, so wie ich es verstanden habe, funktionieren. Aber es war ja auch nicht der ganze quelltext abgedruckt.
Alternativ könntest du die benötigten Variablen ja auch einfach als Parameter übergeben. Das ist zwar weniger perfomant, weil Kopien, aber mit Pointern würdest du das Defizit größtenteils kompensieren ;-)
Grüße,
Sven
ich hatte mal meterlange signs, die sind alle weg