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

Doppelte Dateien löschen: Löschen mit Fehlertoleranz (Seite 3)



<< |< 1 2 3 >| >> 30 Einträge, 3 Seiten
Crian
 2004-05-12 11:33
#82100 #82100
User since
2003-08-04
5866 Artikel
ModeratorIn
[Homepage]
user image
Ja, er mag Doppel-Underscore nicht. Aber _ _data_ _ sollte man schon _ _DATA_ _ schreiben, oder? Die kleingeschriebene Variante ist mir bisher noch nicht begegnet.

Ferner scheinst Du auf die Daten darunter gar nicht zuzugreifen. In dem Fall würde ich _ _END_ _ dem _ _DATA_ _ vorziehen.\n\n

<!--EDIT|Crian|1084347283-->
s--Pevna-;s.([a-z]).chr((ord($1)-84)%26+97).gee; s^([A-Z])^chr((ord($1)-52)%26+65)^gee;print;

use strict; use warnings; Link zu meiner Perlseite
Netspider
 2004-05-12 16:02
#82101 #82101
User since
2003-09-25
49 Artikel
BenutzerIn
[Homepage] [default_avatar]
na gut, dann eben end, das ist nur, damit man die werte zum prüfen weiß, eigentlich kann man das ja auch weglassen
- und wie findest du das script?\n\n

<!--EDIT|Netspider|1084363387-->
perl -e "s;;Ronny Lindner;;m;(..).$;;$l=$1;s;n;;g;m;.{4}$;;$_=$l;$I=$&;m;^(.);;$_.='ts';$_.=$1;$_++;$_++;$_.=$I;print ucfirst;"
Crian
 2004-05-12 16:36
#82102 #82102
User since
2003-08-04
5866 Artikel
ModeratorIn
[Homepage]
user image
@Werte: schon klar, ich war nur durch DATA irritiert.

Naja, ich hätte es anders gemacht, auf jeden Fall mit use strict und warnings und Funktionalität in Funktionen gekapselt, aber für ein so kleines Programm geht es natürlich auch so. Ich würde allerdings die beiden festen Angaben oben durch Optionen austauschen (kannst ja einen Defaultwert im Programm belegen).
Außerdem würde ich den globalen Namensraum nicht so vollladen (:ALL), ich mag voll quallifizierte Namen ;-)

Aber die Idee ist auf jeden Fall nett :-)\n\n

<!--EDIT|Crian|1084365523-->
s--Pevna-;s.([a-z]).chr((ord($1)-84)%26+97).gee; s^([A-Z])^chr((ord($1)-52)%26+65)^gee;print;

use strict; use warnings; Link zu meiner Perlseite
Netspider
 2004-05-12 16:39
#82103 #82103
User since
2003-09-25
49 Artikel
BenutzerIn
[Homepage] [default_avatar]
naja, das programm ist ja eigentlich nicht für die weitergabe, und da ich das programm immer an der selben stelle habe und mein stick nicht plötzlich auf ner anderen partition ist, klappt das immer, das mit dem strict/warnings weiß ich, konnt mich noch nicht dran gewöhnen *g*

zu dem :ALL - ich hatte anfangs nur :Func da stehen, aber da erkennt der die konstanten, die unter data stehen, nicht, deswegen all, klar, ich könnte hier auch ne zahl einsetzen, aber so isses ja schöner\n\n

<!--EDIT|Netspider|1084365674-->
perl -e "s;;Ronny Lindner;;m;(..).$;;$l=$1;s;n;;g;m;.{4}$;;$_=$l;$I=$&;m;^(.);;$_.='ts';$_.=$1;$_++;$_++;$_.=$I;print ucfirst;"
Crian
 2004-05-12 16:41
#82104 #82104
User since
2003-08-04
5866 Artikel
ModeratorIn
[Homepage]
user image
soso ;-) *g*

Hast Du den Stick fest an k: binden können? Bei mir ist er auf einem Rechner auf f:, auf dem anderen auf g: ....

[quote=Netspider,12.05.2004, 14:39]zu dem :ALL - ich hatte anfangs nur :Func da stehen, aber da erkennt der die konstanten, die unter data stehen, nicht, deswegen all, klar, ich könnte hier auch ne zahl einsetzen, aber so isses ja schöner[/quote]
Win32API::File::DRIVE_REMOVABLE
?\n\n

<!--EDIT|Crian|1084365831-->
s--Pevna-;s.([a-z]).chr((ord($1)-84)%26+97).gee; s^([A-Z])^chr((ord($1)-52)%26+65)^gee;print;

use strict; use warnings; Link zu meiner Perlseite
Netspider
 2004-05-12 16:43
#82105 #82105
User since
2003-09-25
49 Artikel
BenutzerIn
[Homepage] [default_avatar]
ich hab das script nur auf einem rechner, und da isser immer auf k:, solange, bis ich formatere und die partitionen anders einteile ;-)

gut zu wissen, das kannte ich noch nicht so, ok, mach ich demnächst\n\n

<!--EDIT|Netspider|1084365888-->
perl -e "s;;Ronny Lindner;;m;(..).$;;$l=$1;s;n;;g;m;.{4}$;;$_=$l;$I=$&;m;^(.);;$_.='ts';$_.=$1;$_++;$_++;$_.=$I;print ucfirst;"
Crian
 2004-05-12 16:53
#82106 #82106
User since
2003-08-04
5866 Artikel
ModeratorIn
[Homepage]
user image
oki ;-)


Ich möchte Dich aber nochmal davon zu überzeugen versuchen, dass Namensräume / use strict eine gute Sache sind:

Wenn Du use strict verwendest, musst Du alle Variablen mit my (oder anders) deklarieren. Dafür hast Du den Vorteil, Dich in einer Funktion darauf verlassen zu können, dass Du keine außerhalb verwendeten Variablen aus Versehen überschreibst, obwohl Du nur eine lokal gültige Variable schaffen wolltest.

Das hat wiederum den Vorteil, das abgeschlossene Stücke Code, wie etwa eine Funktion mit einer klaren Schnittstelle, die keine globalen Variablen verwendet,

a) leicht für sich verständlich ist
b) zwischen verschiedenen Programmen hin und her kopiert werden (und später vielleicht mal in ein Modul wandern) kann
c) Man beim Warten des Codes nicht so ein schwammiges Gefühl bekommt, weil man gar nicht mehr genau weiß, an welchen Stellen absichtlich oder unabsichtlich Variableninhalte geändert werden könnten.


Das alles kommt natürlich erst richtig zum Tragen, wenn man große Programme schreibt. aber auch kleine Programme können wachsen, und deshalb geb ich mir auch mit diesen fast immer die Mühe, strict zu verwenden.

Es ist einfach eine Hilfe bei der Entwicklung, und warum sollte ich dieseausschlagen? Ich sehe das so: andere Sprachen haben so etwas wie strict standardmäßig eingebaut, Perl nicht, weil es den Programmierern alle erdenkliche Freiheiten lassen will.
Die default-Einstellung für strict ist nur unglücklich gewählt, aber das liegt bestimmt an der Herkunft von Perl als bessere ksh-Skript / sed / awk Zusammenfassung.

Natürlich kannst Du es weiterhin weglassen, aber Du tust Dir einen Gefallen, es nicht zu tun. Nimm Dir doch einfach mal testweise vor, beim nächsten Projekt strict / warnings zu verwenden und einfach zu sehen, ob es Dir hinterher besser gefällt oder nicht.

*werbwerbwerb* ;)
s--Pevna-;s.([a-z]).chr((ord($1)-84)%26+97).gee; s^([A-Z])^chr((ord($1)-52)%26+65)^gee;print;

use strict; use warnings; Link zu meiner Perlseite
Crian
 2004-05-12 16:59
#82107 #82107
User since
2003-08-04
5866 Artikel
ModeratorIn
[Homepage]
user image
> Win32API::File::DRIVE_REMOVABLE

[quote=Netspider,12.05.2004, 14:43]gut zu wissen, das kannte ich noch nicht so, ok, mach ich demnächst[/quote]

Das hat seine Vorteile, auch beim Funktionsaufruf. Ich kann jetzt nur raten (oder in die Manpage schauen), ob GetDriveType aus Win32API::File oder aus Win32::DriveInfo stammt. Ich tippe mal auf letzteres. Lädst Du aber die Funktionennamen nicht in den allgemeinen Namensraum, sondern rufst die Funktion mit Win32::DriveInfo::GetDriveType auf, weiß der Leser sofort, woher die Funktion stammt.

Und damit umgehst Du auch das Problem, dass sich Funktionen vom Namen her überschneiden könnten (das kann man dann aber durch eben diese Angabe umgehen, lässt man sie aber weg, so muss man erst mal nachsehen, in welcher Reihenfolge die Module eingebunden wurden und dann auch noch wissen, ob das erste oder das letzte zum Zuge kommt ;-).

Hmm ... ich hab heute einen gesprächigen Tag =)
s--Pevna-;s.([a-z]).chr((ord($1)-84)%26+97).gee; s^([A-Z])^chr((ord($1)-52)%26+65)^gee;print;

use strict; use warnings; Link zu meiner Perlseite
Netspider
 2004-05-12 19:25
#82108 #82108
User since
2003-09-25
49 Artikel
BenutzerIn
[Homepage] [default_avatar]
*g*

ich hab mal ein forum geschrieben, zum privatgebrauch und mit textdateien - ganz ohne strict/warnings, jetzt würde ich einiges anders machen, davor hatte ich ein gästebuch geschrieben, mit ner riesengroßen if ... (else if)+ ... else anweisung
perl -e "s;;Ronny Lindner;;m;(..).$;;$l=$1;s;n;;g;m;.{4}$;;$_=$l;$I=$&;m;^(.);;$_.='ts';$_.=$1;$_++;$_++;$_.=$I;print ucfirst;"
Crian
 2004-05-12 19:56
#82109 #82109
User since
2003-08-04
5866 Artikel
ModeratorIn
[Homepage]
user image
Klar, gehen tut alles, ich hab auch mal ein Schachprogramm in C64-Basic geschrieben (da gibts keine Funktionen ^^).
s--Pevna-;s.([a-z]).chr((ord($1)-84)%26+97).gee; s^([A-Z])^chr((ord($1)-52)%26+65)^gee;print;

use strict; use warnings; Link zu meiner Perlseite
<< |< 1 2 3 >| >> 30 Einträge, 3 Seiten



View all threads created 2004-05-07 19:35.