Schrift
[thread]9039[/thread]

Perl Script Anpassung: Aus eins mach zwei... (Seite 2)



<< |< 1 2 >| >> 13 Einträge, 2 Seiten
ManfredG.
 2007-05-27 22:25
#76981 #76981
User since
2007-05-26
11 Artikel
BenutzerIn
[default_avatar]
Hallo zusammen,
erst einmal herzlichen Dank für Eure Geduld.

Ich habe das Script gerade mal als .txt Datei auf meinen Server geladen Perl-Script

Für die Übersichtlichkeit habe ich die Originalen Teile auskommentiert und die Selbst bearbeiteten Teile entsprechend kommentiert.

Die Ergänzung der Zeile
my ($vorname, $nachname) = split /\s/, $t->{payment_method}->{public_data}->{holder_name};
habe ich an verschiedenen Stellen versucht.
Im hochgeladenen Script habe ich diese Zeilen jetzt stehen lassen und auskommentiert.

Beim Versuch das Script zu starten, bekomme leider immer noch diesen ERROR:
Global symbol "$t" requires explicit package name

Das heißt genau, diese Fehlermeldung landet im Logfile des Servers, wenn ich versuche das ganze Programm zu starten.
Das Programm überprüft beim Start automatisch, ob es irgendwo in den PlugIns einen Fehler gibt und schreibt diesen dann gegenenenfalls in ein entsprechendes Logfile.

Herzlichen Dank für Euere Hilfe.

Liebe Grüße und bis bald
Manfred\n\n

<!--EDIT|ManfredG.|1180290667-->
PerlProfi
 2007-05-27 23:16
#76982 #76982
User since
2006-11-29
340 Artikel
BenutzerIn
[default_avatar]
Na, da wo du es versucht hast einzubauen ist es ja auch falsch!
Du musst durch die Daten iterieren ( kommt ja ein paar mal in dem skript vor ) und dann den vollen Namen in Vorname und Nachname aufteilen.

Sieh dir z.B. diese Stelle einmal an:
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
#my ($vorname, $nachname) = split /\s/, $t->{payment_method}->{public_data}->{holder_name};

foreach my $t (@$transaction_list) {
$batch_content .= "<Debit> \n" .
"<businessCaseSignature>Meine WireCard Signatur</businessCaseSignature> \n" .
"<merchantTransId>". $t->{document_info}->{number}. "</merchantTransId> \n" .
"<ExternalAccount> \n" .
"<firstName>". $t->{payment_method}->{public_data}->{vorname}. "</firstName> \n" .
"<lastName>". $t->{payment_method}->{public_data}->{nachname}. "</lastName> \n" .
"<accountNumber>". $t->{payment_method}->{secure_data}->{account_number}. "</accountNumber> \n" .
"<BankCode>". $t->{payment_method}->{secure_data}->{bank_code}. "</BankCode> \n" .
"<Country>". $t->{account_info}->{address_country} . "</Country> \n" .
"</ExternalAccount> \n" .
"<Amount>". $t->{transaction_amount}*100 . "</Amount> \n" .
"<currency>EUR</currency> \n" .
"<Usage>". string('dummy_pp_description',
doc_name => $t->{document_info}->{name},
doc_num => $t->{document_info}->{number},
) . "</Usage> \n" .
"</Debit> \n";

$result_amount += $t->{transaction_amount};
}

Hier wolltest du $t an einer Stelle verändern an der es gar keinen Sinn macht, und $t nicht existiert, deshalb die Fehlermeldung.
Das split() muss mit in die Schleife.

Du könntest also, nachdem die $transaction_list bekannt ist, einmal durchiterieren und die Namen splitten.

MfG
ManfredG.
 2007-05-28 04:57
#76983 #76983
User since
2007-05-26
11 Artikel
BenutzerIn
[default_avatar]
Hallo zusammen,
erst einmal 1000 Dank für Eure Hilfe.

Die Sache mit der Vorname, Nachname Trennung funktioniert jetzt ganz hevorragend. (;-))

Liebe Grüße
Manfred
<< |< 1 2 >| >> 13 Einträge, 2 Seiten



View all threads created 2007-05-26 02:25.