Schrift
Wiki:Tipp zum Debugging: use Data::Dumper; local $Data::Dumper::Useqq = 1; print Dumper \@var;
[thread]6114[/thread]

manchmal ist es NICHT einfach ! (Seite 2)

Leser: 1


<< |< 1 2 3 >| >> 22 Einträge, 3 Seiten
renee
 2004-03-06 19:36
#80529 #80529
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
[quote=cc,05.03.2004, 23:39]
Code: (dl )
1
2
3
4
5
# change remote directory
my ($f1, $f2, $ftp_upload_location) = @$f
$ftp->cwd ($ftp_upload_location);
..............
..............
[/quote]
Da fehlt wohl ein Semikolon in der zweiten Zeile... Dann fällt auch folgende Fehlermeldung weg:[quote=cc,05.03.2004, 23:39]
operator expected at ftp.cgi line 107, near "$f
[Fri Mar  5 23:06:35 2004] ftp.cgi: #...
[Fri Mar  5 23:06:35 2004] ftp.cgi: $ftp"
[Fri Mar  5 23:06:35 2004] ftp.cgi: (Missing semicolon on previous line?)
[Fri Mar  5 23:06:35 2004] ftp.cgi: syntax error at ftp.cgi line 107, near "$f[/quote]

Das hier:[quote=cc,05.03.2004, 23:39]
dann bekomme folgende fehlermeldungen (vorher keine):
[Fri Mar  5 23:06:35 2004] ftp.cgi: "my" variable $f1 masks earlier declaration in same scope at ftp.cgi line 105.
[Fri Mar  5 23:06:35 2004] ftp.cgi: "my" variable $f2 masks earlier declaration in same scope at ftp.cgi line 105.
[/quote] sagt, dass Du zweimal die Variablen mit my deklarierst. Das reicht beim ersten Mal...\n\n

<!--EDIT|renee|1078594685-->
OTRS-Erweiterungen (http://feature-addons.de/)
Frankfurt Perlmongers (http://frankfurt.pm/)
--

Unterlagen OTRS-Workshop 2012: http://otrs.perl-services.de/workshop.html
Perl-Entwicklung: http://perl-services.de/
coax
 2004-03-06 19:53
#80530 #80530
User since
2003-08-11
457 Artikel
BenutzerIn
[default_avatar]
Quote
Fri Mar  5 23:06:35 2004] ftp.cgi: "my" variable $f1 masks earlier declaration in same scope at ftp.cgi line 105.
[Fri Mar  5 23:06:35 2004] ftp.cgi: "my" variable $f2 masks earlier declaration in same scope at ftp.cgi line 105.

$f1 und $f2 sind schon einmal zuvor in deinen Script mit my deklariert wurden, wahrscheinlich hier
Code: (dl )
1
2
foreach my $f (@ren) {
my ($f1, $f2) = @$f;


Quote
[Fri Mar  5 23:06:35 2004] ftp.cgi: Scalar found where operator expected at ftp.cgi line 107, near "$f
[Fri Mar  5 23:06:35 2004] ftp.cgi: #...
[Fri Mar  5 23:06:35 2004] ftp.cgi: $ftp"
[Fri Mar  5 23:06:35 2004] ftp.cgi: (Missing semicolon on previous line?)
[Fri Mar  5 23:06:35 2004] ftp.cgi: syntax error at ftp.cgi line 107, near "$f

weil hier das Semikolon am Ende fehlt
Code: (dl )
1
2
# change remote directory
my ($f1, $f2, $ftp_upload_location) = @$f

in deinen Codeschnipsel hattest das dann aber geaendert, nur die Doppeldeklarierung der Variablen waren noch da...
Code: (dl )
1
2
3
4
5
# change remote directory
my ($f1, $f2, $ftp_upload_location) = @$f;
$ren[0]->[2] = "/DE/IN";
$ren[1]->[2] = "/DE/OUT";
$ftp->cwd ($ftp_upload_location);



Quote
von cc:
und ich verstehe deine antworten zu punkt 2 nicht,
was deiner meinung falsch ist.

Wenn ich Kabel da richtig verstanden habe, kannst du dich auf den Rueckgabewert von put() und somit auch nicht auf die Ausfuehrung von last bei
Code: (dl )
$ftp->put($f2) and last;

verlassen. Du solltest also anders pruefen ob put erfolgreich war.
Hab ich das richtig verstanden ???
,,Das perlt aber heute wieder...'' -- Dittsche
Ronnie
 2004-03-06 20:02
#80531 #80531
User since
2003-08-14
2022 Artikel
BenutzerIn
[default_avatar]
[quote=esskar,03.03.2004, 21:36]würde es mit cronjobs tun...[/quote]
Der at-Daemon ist interessanter. Man kann Jobs einrichten mit
Quote
at now + 1 hour
oder
at 21:00
cc
 2004-03-06 20:58
#80532 #80532
User since
2004-01-09
55 Artikel
BenutzerIn
[default_avatar]
hi

vielen dank für die hilfreichen Hinweise.
habe geändert, bekomme keine errors mehr,
aber das erste file wird immer noch zu de der falschen directory geschichkt:
Code: (dl )
1
2
3
4
5
# change remote directory
my ($ft1, $ft2, $ftp_upload_location) = @$f;
$ren[0]->[2] = "/DE/IN";
$ren[1]->[2] = "/DE/OUT";
$ftp->cwd ($ftp_upload_location);

change directory Befehl (cwd) vor dem senden des ersten files,
wird gar nicht richtig ausgeführt.
log:
-----------------------------------------------------------------------------------------
Net::FTP=GLOB(0x84ae29c)<<< 220 szhstorage Microsoft FTP Service (Version 5.0).
Net::FTP=GLOB(0x84ae29c)>>> user anonymous
Net::FTP=GLOB(0x84ae29c)<<< 331 Anonymous access allowed, send identity (e-mail name) as password.
Net::FTP=GLOB(0x84ae29c)>>> PASS ....
Net::FTP=GLOB(0x84ae29c)<<< 230 Anonymous user logged in.
Net::FTP=GLOB(0x84ae29c)>>> CWD /
Net::FTP=GLOB(0x84ae29c)<<< 250 CWD command successful.
Net::FTP=GLOB(0x84ae29c)>>> PORT 192,168,0,3,131,192
Net::FTP=GLOB(0x84ae29c)<<< 200 PORT command successful.
Net::FTP=GLOB(0x84ae29c)>>> STOR DA20030320
Net::FTP=GLOB(0x84ae29c)<<< 150 Opening ASCII mode data connection for DA20030320.
Net::FTP=GLOB(0x84ae29c)<<< 226 Transfer complete.
Net::FTP=GLOB(0x84ae29c)>>> QUIT

Net::FTP=GLOB(0x84ae29c)<<< 221
Net::FTP=GLOB(0x84c669c)<<< 220 szhstorage Microsoft FTP Service (Version 5.0).
Net::FTP=GLOB(0x84c669c)>>> user anonymous
Net::FTP=GLOB(0x84c669c)<<< 331 Anonymous access allowed, send identity (e-mail name) as password.
Net::FTP=GLOB(0x84c669c)>>> PASS ....
Net::FTP=GLOB(0x84c669c)<<< 230 Anonymous user logged in.
Net::FTP=GLOB(0x84c669c)>>> CWD /DE/OUT
Net::FTP=GLOB(0x84c669c)<<< 250 CWD command successful.
Net::FTP=GLOB(0x84c669c)>>> PORT 192,168,0,3,131,194
Net::FTP=GLOB(0x84c669c)<<< 200 PORT command successful.
Net::FTP=GLOB(0x84c669c)>>> STOR DB20030320
Net::FTP=GLOB(0x84c669c)<<< 150 Opening ASCII mode data connection for DB20030320.
Net::FTP=GLOB(0x84c669c)<<< 226 Transfer complete.
Net::FTP=GLOB(0x84c669c)>>> QUIT
Net::FTP=GLOB(0x84c669c)<<< 221

Errors:
-----------------------------------------------------------------------------------------\n\n

<!--EDIT|cc|1078599647-->
renee
 2004-03-07 14:10
#80533 #80533
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
Lass Dir doch mal mit Dumper den Inhalt des Arrays @ren und auch mal $ftp_upload_location ausgeben, ob da überhaupt alles so drinsteht, wie Du Dir das vorstellst...
OTRS-Erweiterungen (http://feature-addons.de/)
Frankfurt Perlmongers (http://frankfurt.pm/)
--

Unterlagen OTRS-Workshop 2012: http://otrs.perl-services.de/workshop.html
Perl-Entwicklung: http://perl-services.de/
cc
 2004-03-07 14:46
#80534 #80534
User since
2004-01-09
55 Artikel
BenutzerIn
[default_avatar]
hallo renee

danke für den hinweis, aber kannst du bitte code posten,
wie das deiner meinung gehen sollte ?

gruss
cc
renee
 2004-03-07 14:50
#80535 #80535
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
Code: (dl )
1
2
3
4
5
6
7
8
use Data::Dumper;

# direkt vor dem foreach $f(@ren)
print Dumper(\@ren);

#...
#direkt von dem $f->cwd($ftp_upload_location)
print $ftp_upload_location;


Dann schau mal, ob das mit dem übereinstimmt, was Du erwartest
OTRS-Erweiterungen (http://feature-addons.de/)
Frankfurt Perlmongers (http://frankfurt.pm/)
--

Unterlagen OTRS-Workshop 2012: http://otrs.perl-services.de/workshop.html
Perl-Entwicklung: http://perl-services.de/
kabel
 2004-03-07 14:50
#80536 #80536
User since
2003-08-04
704 Artikel
BenutzerIn
[default_avatar]
jaja, tomaten hab ich auch gelegentlich auf den augen 8)
frage dich mal selber: macht der code sinn?

momentan sieht er so aus (educated guess ...):
Code (perl): (dl )
1
2
3
4
foreach my $f (@ren) {
my ($ft1, $ft2, $ftp_upload_location) = @$f;
$ren[0]->[2] = "/DE/IN";
$ren[1]->[2] = "/DE/OUT";

so, und nu sage mir, warum das erste file zur falschen $ftp_upload_location geschickt wird!

die zwei zuweisungen müssen (natürlich ;) ) ausserhalb der foreach () schleife stehen.
-- stefan
renee
 2004-03-07 14:54
#80537 #80537
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
weiter oben hat er in seinem Code so etwas stehen:
Code: (dl )
1
2
3
4
5
6
7
8
while (<>) { # for every line in info
m/^\s*(\S+)\s+(\S+)\s*$/ or next; #
-f $1 or next; # skip if file to rename does not exist
-f $2 and next; # skip if file to rename does not exist
push @ren, [ $1, $2 ];
$ren[0]->[2] = "/DE/IN";
$ren[1]->[2] = "/DE/OUT";
}

von daher gibt es die Zuweisungen schon vorher...
OTRS-Erweiterungen (http://feature-addons.de/)
Frankfurt Perlmongers (http://frankfurt.pm/)
--

Unterlagen OTRS-Workshop 2012: http://otrs.perl-services.de/workshop.html
Perl-Entwicklung: http://perl-services.de/
cc
 2004-03-07 16:32
#80538 #80538
User since
2004-01-09
55 Artikel
BenutzerIn
[default_avatar]
hallo kabel und renee

zuerst möchte mich sehr bedanken
muss sagen eigentlich nicht "kabel", sondern ich "grosse tomaten auf den augen haben "
erster vorschalg von "kabel" war auch richtig.
korrekt ist:
Code: (dl )
1
2
3
4
5
# change remote directory
$ren[0]->[2] = "/DE/IN";
$ren[1]->[2] = "/DE/OUT";
my ($ft1, $ft2, $ftp_upload_location) = @$f;
$ftp->cwd ($ftp_upload_location);

und falsch war:
Code: (dl )
1
2
3
4
5
# change remote directory
my ($ft1, $ft2, $ftp_upload_location) = @$f;
$ren[0]->[2] = "/DE/IN";
$ren[1]->[2] = "/DE/OUT";
$ftp->cwd ($ftp_upload_location);
\n\n

<!--EDIT|cc|1079046182-->
<< |< 1 2 3 >| >> 22 Einträge, 3 Seiten



View all threads created 2004-03-03 11:55.