WCM - Das österreichische Computer Magazin Forenübersicht
 

Zurück   WCM Forum > Rat & Tat > Programmierung

Programmierung Rat & Tat für Programmierer

Microsoft KARRIERECAMPUS

Antwort
 
Themen-Optionen Ansicht
Alt 10.12.2001, 21:55   #1
SNo0py
Inventar
 
Registriert seit: 08.02.2000
Beiträge: 1.696


Standard Dringendes Perl-Problem!!!

Hallo! Ich habe ein absolut dringendes Perl-Problem, ich komme einfach nimma weiter...

Auf http://www.xdream.cc/cgi-bin/homanto/homanto.pl bekomme ich immer einen ominösen Fehler, bei mir am eigenen Server (Apache auf dem lokalen Rechner) funkt aber alles... das gibt es doch nicht?!?!

Der Code:
Code:
open ...                              öffne file
my @data = <FILE>;                    lese daten
close ...                             schließe file wieder

my $c = scalar(@data) - 1;                     
for ( 0 .. $c ) {                     für jedes gelesene Element...
     my $tmp = $data[$_];          
     ... leerzeilen etc. filtern...          

     my @dbset = split(/\|/, $tmp);   aufteilen (|)       

     if($dbset[0] eq ... && ...) {    wenn ... ...          
          delete $data[$_];           Zeile 83... 
hier sollte der ganze Datensatz 
(sprich die ganze Zeile) gelöscht 
werden...    
          last;                       und raus  
     }
Sinn dahiner: ich öffne ein File, lese es ein, suche nach einer ID (das sind die Abfragen), lösche den Datensatz und schreibe das File wieder raus.

Nur regt sich das Programm schon auf, bevor ich was ausführe und das Programm sollte da gar nicht reingehen, wenn ich keine Parameter angebe...

kann mir da wer helfen??
____________________________________
Sex is like hacking. You get in, you get out, and you hope you didnt leave something behind that can be traced back to you.
SNo0py ist offline   Mit Zitat antworten
Alt 10.12.2001, 22:21   #2
_m3
Inventar
 
Registriert seit: 24.09.2001
Beiträge: 7.335


Standard

IMHO wird $_ irgendwo in Deinem Sourcecode überschrieben und repräsentiert daher nicht mehr Deinen Index.
Lösung: Nutz eine explizite Variable als Index. Z.B.:
for my $idx ( 0 .. $c ) {
my $tmp = $data[$idx];
....
delete $data[$idx];
...
____________________________________
Weiterhin zu finden auf http://martin.leyrer.priv.at , http://twitter.com/leyrer , http://www.debattierclub.net/ , http://www.tratschen.at/ und via Instant Messaging auf Jabber: m3 <ät> cargal.org .
_m3 ist offline   Mit Zitat antworten
Alt 11.12.2001, 07:44   #3
SNo0py
Inventar
 
Registriert seit: 08.02.2000
Beiträge: 1.696


Standard

Hallo _mp3!

Ich habe den Code gerade ausgebessert und hinaufgeladen (mit $idx usw.), jetzt wird nirgens mehr $_ verwendet. Noch immer der gleiche Fehler...

Trotzdem thx.!
____________________________________
Sex is like hacking. You get in, you get out, and you hope you didnt leave something behind that can be traced back to you.
SNo0py ist offline   Mit Zitat antworten
Alt 11.12.2001, 07:45   #4
SNo0py
Inventar
 
Registriert seit: 08.02.2000
Beiträge: 1.696


Standard

Noch was is mir gerade eingefallen: warum funkts dann bei mir lokal???

Kapier ich nicht...
____________________________________
Sex is like hacking. You get in, you get out, and you hope you didnt leave something behind that can be traced back to you.
SNo0py ist offline   Mit Zitat antworten
Alt 11.12.2001, 07:57   #5
_m3
Inventar
 
Registriert seit: 24.09.2001
Beiträge: 7.335


Standard

Was sagt denn ein
print $^V;
???
BTW:
my $c = scalar(@data) - 1;
for ( 0 .. $c ) {
lässt sich eleganter als
for ( 0 .. $#data ) {
schreiben
____________________________________
Weiterhin zu finden auf http://martin.leyrer.priv.at , http://twitter.com/leyrer , http://www.debattierclub.net/ , http://www.tratschen.at/ und via Instant Messaging auf Jabber: m3 <ät> cargal.org .
_m3 ist offline   Mit Zitat antworten
Alt 11.12.2001, 07:58   #6
MANX
Inventar
 
Registriert seit: 27.02.2001
Beiträge: 1.967


Standard

Hi!

Sucht's ihr eh im richtigen script?
Zitat:
Untrapped Error: delete argument is not a HASH element or slice at sources/user.pl line 183
Der Fehler ist in user.pl, nicht in homanto.pl.

Poste halt einen Abschnitt aus user.pl.

Grüße

Manx
MANX ist offline   Mit Zitat antworten
Alt 11.12.2001, 08:05   #7
_m3
Inventar
 
Registriert seit: 24.09.2001
Beiträge: 7.335


Standard

Ach Du Sch......
Klassischer Fall von Betriebsblind!
[Hut zieh vor MANX]
____________________________________
Weiterhin zu finden auf http://martin.leyrer.priv.at , http://twitter.com/leyrer , http://www.debattierclub.net/ , http://www.tratschen.at/ und via Instant Messaging auf Jabber: m3 <ät> cargal.org .
_m3 ist offline   Mit Zitat antworten
Alt 11.12.2001, 13:23   #8
SNo0py
Inventar
 
Registriert seit: 08.02.2000
Beiträge: 1.696


Standard

Hallo!

Der erste Fehler war auf Zeile 83 in events.pl. Nachdem anscheinend $_ verändert wurde, hat das einführen einer Zählvariable $idx funktioniert. Anschließend hat eine ähnliche Routine in user.pl auf Zeile 183 nicht funktioniert :-(

Heute in der Vorlesung hab ich Zeit gehabt, mir das ganze auf dem Psion anzusehen: laut Dokumentation ist die Funktion delete nur für Hashes anwendbar, für Arrays ist splice zu verwenden (splice array, offset, length, list).

Bin gerade am Uploaden, hoffentlich funkt es jetzt!

Auf jeden Fall danke!
____________________________________
Sex is like hacking. You get in, you get out, and you hope you didnt leave something behind that can be traced back to you.
SNo0py ist offline   Mit Zitat antworten
Alt 11.12.2001, 13:27   #9
_m3
Inventar
 
Registriert seit: 24.09.2001
Beiträge: 7.335


Standard

Funkt. auch mit Arrays:
Zitat:
Given an expression that specifies a hash element, array element, hash slice, or array slice, deletes the specified element(s) from the hash or array.
____________________________________
Weiterhin zu finden auf http://martin.leyrer.priv.at , http://twitter.com/leyrer , http://www.debattierclub.net/ , http://www.tratschen.at/ und via Instant Messaging auf Jabber: m3 <ät> cargal.org .
_m3 ist offline   Mit Zitat antworten
Alt 11.12.2001, 13:33   #10
SNo0py
Inventar
 
Registriert seit: 08.02.2000
Beiträge: 1.696


Standard

@_mp3: ich weiß, auf meinem lokalen Rechner funkt es auch mit Arrays, aber auf meinem Provider anscheinend nicht. Mit splice funkt aber alles einwandfrei. Nur die Bilder muss ich noch uploaden, dann ist der Testbetrieb von HoManTo aufgenommen!

Danke auf jeden Fall für die Hilfe!

PS: mit obigen Link wird man auf die Homepage weitergeleitet, um HoManTo zu sehen, bitte !hier klicken
____________________________________
Sex is like hacking. You get in, you get out, and you hope you didnt leave something behind that can be traced back to you.
SNo0py ist offline   Mit Zitat antworten
Antwort


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.

Gehe zu


Alle Zeitangaben in WEZ +2. Es ist jetzt 05:25 Uhr.


Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Forum SEO by Zoints
© 2009 FSL Verlag