Hallo ,
Ein BEGIN Block wird vor dem Start des Skriptes ausgeführt
(während der Übersetzung), es sollte schon klar sein, warum
man das tut.
Ich tue es ja nicht,
ich möchte es ja nur verstehen!
Es ist a nicht Poldis Script, er moechte es ja nur bei sich einsetzen.
Es sollte aber nichts mit deiner Fehlermeldung zu tun haben.
Doch es sollte:
»A BEGIN code block is executed as soon as possible, that is, the
moment it is completely defined, even before the rest of the
containing file (or string) is parsed.«
Original Code:~~~perl
sub success_page_html_preamble {
my ($self, $date) = @_;
my $title = $self->escape_html( $self->{FormConfig}{'title'} || 'Thank You' );
my $torecipient = 'to ' . $self->escape_html($self->{FormConfig}{'recipient'});
$torecipient = '' if $self->{Hide_Recipient};
my $attr = $self->body_attributes;
Der Fehler des Scripts liegt da dran, das der Begin Block als eigene
Script Datei augefuehrt wird. [In dieser Existiert die Variable `$tDanke`{:.language-perl}
gar nicht.
Die Variable `$tDanke`{:.language-perl} muss noch einmal explizit mit `my`{:.language-perl} aufgerufen
werden
~~~perl
sub success_page_html_preamble {
my ($self, $date) = @_;
# Kleine Modifizierung: Wenn du noch andere Variablen in $tDanke
# aufrufst, dann muessn diese auch mit *my* gekenzeichnet werden
my $tDanke = ".....";
my $title = $self->escape_html( $self->{FormConfig}{'title'} || "$tDanke");
...
Die vorherige deklarierung, kann geloescht werden
use vars qw(... $tDanke ....);
...
# ... und wech damit: $tDanke = ".....";
gruesse aus'm ruhrpott
jens mueller
As long as a single mind remembers, as long as a single heart
beats with passion, how can a dream die?
\//_ Live long and prosper
sh:( fo:) ch:| rl:° br:^ n4:| ie:% mo:| va:} de:> zu:) fl:( ss:) ls:> js:|