Thread Variable _ ? (52 answers)
Opened by bianca at 2020-12-25 10:24

haj
 2020-12-26 23:56
#193044 #193044
User since
2015-01-07
540 articles
BenutzerIn

user image
2020-12-26T17:59:04 bianca
2020-12-26T16:43:59 haj
Was passiert bei perl -wc D:ein\programm (bitte den Pfad zu Deinem Programm einsetzen)? Falls Du Module mit require einbindest, hilft das nicht unbedingt weiter, aber vielleicht tritt der Fehler da schon auf.

-c nutze ich immer und -w entspricht ja warnings, was auch überall drin ist. Module werden immer require't, nicht ge-use-t.

-w und use warnings sind nicht ganz das gleiche, aber das ist hier nicht weiter wichtig. Aber: Wenn Du Module mit require lädst, dann passiert das erst zur Laufzeit - das heißt, -c prüft da gar nichts.

2020-12-26T17:59:04 bianca
2020-12-26T16:43:59 haj
Was passiert, wenn Du in der Zeile 31 in C:/Strawberry/perl/site/lib/Archive/Zip/DirectoryMember.pm das _ durch $fileName ersetzt? Vielleicht kitzelt das eine andere Fehlermeldung raus, die der Ursache näher kommt.
Ja das hatte ich zwischenzeitlich eingebaut und dann lief es auch durch.
Im übrigen mache ich es so in eigenen Programmen immer. _ kannte ich gar nicht. Spart man damit wirklich so viel ein, dass das heutzutage noch nennenswert ist?

Die immer gültige Antwort: "Es kommt drauf an". Dass bei solchen Systemaufrufen tatsächlich eine Menge passiert, ist gar nicht das schlimmste. Aber: Der Pfad könnte eine Datei auf einem Netzlaufwerk sein. Dann verlangt ein stat, dass man übers Netz nachfragt - könnte sich ja in der Zwischenzeit was geändert haben - und auf Antwort warten muss. Sowas will man nicht unnötig oft machen.

2020-12-26T17:59:04 bianca
Auf jeden Fall ist das nicht schön, weil ich das ja nicht bei jedem Update wieder neu machen will.

Sehr verständlich.

2020-12-26T17:59:04 bianca
Es wirft also den Fehler nur zur Ausführungszeit, nicht zur Compilierzeit. Was kann das sein?

Ich habe keine heiße Spur. Allerdings ziehst Du mit require den Prüfungen zur Compilierzeit die Zähne, da kann ich mir schon erklären, warum's erst zur Laufzeit scheppert.

Es bleibt nur: Experimentell eingrenzen. Ergänze Dein Programm an einigen Stellen um eine Zeile
Code (perl): (dl )
@geht's_noch = stat(_);

Interessant wäre die Stellen, bevor und nachdem Du Archive::Zip einbindest.

Das ist Raterei, aber anderes fällt mir nicht ein.

View full thread Variable _ ?