Wie findet man herraus, welche Perl_mods benötigt werden.

Ich hab hier ein script, zur organisation von Mp3 dateien. Das script lief ohne probleme.
Nun haben wir einen neuen server, eigentlich alles gleich, nur der perlinterpretor ist nicht mit den selben Mods gefüttert..

Die Folge: Das script spuckt fehlermeldungen, dass alles zuspät ist.

Ich vermute mal, dass nicht alle mods instlliert sind, die benötigt werden.. Aber es kommt nicht in frage, alle alten zu instalieren, da das locker um die 50 stück waren.

Nun meine Frage, gibt es eine möglichkeit, harauszufinden, welche mods der interpretor braucht? ( das alte system steht noch zur verfügung.)

Und hier noch kurz die fehlermeldungen.

Use of uninitialized value in pattern match (m//) at ./spcs.pl line 305.
Use of uninitialized value in substitution (s///) at ./spcs.pl line 678.
Use of uninitialized value in substitution (s///) at ./spcs.pl line 679.
Use of uninitialized value in string eq at ./spcs.pl line 684.
Use of uninitialized value in substitution (s///) at ./spcs.pl line 678.
Use of uninitialized value in substitution (s///) at ./spcs.pl line 679.
Use of uninitialized value in string eq at ./spcs.pl line 684.
Use of uninitialized value in substitution (s///) at ./spcs.pl line 612.
Use of uninitialized value in concatenation (.) or string at ./spcs.pl line 388.
Use of uninitialized value in concatenation (.) or string at ./spcs.pl line 406.
Use of uninitialized value in concatenation (.) or string at ./spcs.pl line 406.

Aber evtl ist es auch was ganz was anderes. ich hab von Pl leider keinen schimmer. Deswegen hier noch die Zeilen, die fehler erzeugen.

Code:
z305: if ($id3{'comment'} =~ /^([0-9]+)\/([0-9]+)\s$commentstr$/)
z388: $res = $dbh->prepare("insert into site_songs (artistid,artist,title,src,active,slength,slicid,shash,hdate,sabadon,udate) values ($artistid,'".&addSlashes($id3{'artist'},"'")."','".&addSlashes($id3{'title'},"'")."','".&addSlashes($filename,"'")."',0,'".&addSlashes($id3{'length'},"'")."',0,'',".time().",0,now())");
z406: &addLog("Neue Datei","ID: $insertid\nPfad: $filename\nID3: $song->{artist} - $song->{title}",$insertid,$filename);
z612: $str =~ s/([$chars])/\\$1/g;
z678: my ($str) = @_; $str =~ s/^\s+//;
z679: $str =~ s/\s+$//; return $str;
z684:  return (trimStr($str) eq "");

und diese sql anweisung soll auch nen syntaxfehler haben.
Code:
$res = $dbh->prepare("update site_songs set slength=$id3{'length'} where id=$song->{id}");

Meldung:
DBD::mysql::st execute failed: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'where id=494' at line 1 at
 
"Use of uninitialized value in ...":
Du benutzt eine Variable ohne Initialisierung. Kannst du eigentlich ignorieren (meistends). Die Warnung bekommst angezeigt, weil auf dem neuen Server wahrscheinlich Warnungen aktiviert sind und auf dem alten nicht.
Kurz: Das sind keine Fehler, nur Hinweise auf mögliche Fehler.

mysql:
Hast du die Datenbank auch korrekt angelegt?
//Edit:
Stimmt der Datenbankname, sind auch die Tabellen drin?
 
huch ein perl thread 8o:

kannst du mal das perl-script posten? zeile 678 scheint in einer schleife zu stehen und ist grad ausm zusammenhand gerissen
 
@v01d:
Also die mysqldatenbank entspricht exakt der, die auch auf dem alten rechner vorzufinden war.. Der Rest (php-scripte) arbeitet ja mit den selben tabellen, und da gibts auch keine probleme. ich hab das auch nochmal im einzelnen geprüft.. die datenbank ist soweit identisch.

Es scheint sich ja aber auch um einen syntaxfehler zu handeln. Laut meldung. in PHP hatte ich das nur, wenn irgendwelche `` o.ä. nicht richtig gesetzt waren.

Und die meldungen sagst du kann ich ignorieren?
Kann ich die auch irgendwo abstellen?

@2Bios: dieser punkt besteht nur aus den zwei oben genannten zeilen 678 und 679, und stellt eine funktion zum manipulieren eines strings dar (scheinbar):

Code:
sub trimStr {
        my ($str) = @_; $str =~ s/^\s+//;
        $str =~ s/\s+$//; return $str;
}


Ich schau mal wegen dem post, muss erstmal passwörter und so rausfiltern..
 
Zurück
Oben