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

Einfuehrung in Perl: Bitte um Kritik (Seite 3)



<< |< 1 2 3 4 >| >> 39 Einträge, 4 Seiten
Strat
 2003-10-15 18:04
#63545 #63545
User since
2003-08-04
5246 Artikel
ModeratorIn
[Homepage] [default_avatar]
[quote=pq,15.10.2003, 13:37]Zeile 17, unten: print ($zeichenkette);
liefert eine warnung:
print (...) interpreted as function at ...[/quote]
witzig; das sollte es eigentlich nicht; und tut es bei mir auch nicht
Code: (dl )
1
2
3
4
5
6
7
8
C:\>perl
use warnings;
use strict;
my $zeichenkette = "2345";
print ($zeichenkette);
^Z
2345
C:\>

diese Warnung habe ich auch schon gesehen, und zwar irgendwas in Verbindung mit mehreren Eingaben oder mehrzeiligen Strings...

welche Perl-Version verwendest du?
perl -le "s::*erlco'unaty.'.dk':e,y;*kn:ai;penmic;;print"
http://www.fabiani.net/
Strat
 2003-10-15 18:12
#63546 #63546
User since
2003-08-04
5246 Artikel
ModeratorIn
[Homepage] [default_avatar]
@pq: vielen Dank fuer die Fehler (peinlich) und Verbesserungsvorschlaege. habe sie schon groesstenteils eingebaut
perl -le "s::*erlco'unaty.'.dk':e,y;*kn:ai;penmic;;print"
http://www.fabiani.net/
pq
 2003-10-15 19:15
#63547 #63547
User since
2003-08-04
12208 Artikel
Admin1
[Homepage]
user image
[quote=Strat,15.10.2003, 16:04]witzig; das sollte es eigentlich nicht; und tut es bei mir auch nicht[/quote]
hmm, ok, eine warnung kommt tatsächlich nur, wenn man das semikolon
am ende wegläßt...
print ($string);
print ($string2)


na gut =)
Always code as if the guy who ends up maintaining your code will be a violent psychopath who knows where you live. -- Damian Conway in "Perl Best Practices"
lesen: Wiki:Wie frage ich & perlintro Wiki:brian's Leitfaden für jedes Perl-Problem
steffenw
 2003-10-15 23:17
#63548 #63548
User since
2003-08-15
692 Artikel
BenutzerIn
[Homepage] [default_avatar]
was mir auffiel:
- was soll undef(ined) heißen?
- Zahlenformate, die Tabelle ist zwei mal drin
- bei substring ist der 4. Parameter auch Gold wert, mit
 $die_ersten_10 = substring($text, 0, 10, '' );
 kann man wunderbar Strings von vorn "abknabbern",
 was man in etwa mit shift bei Arrays vergleichen kann.
- warum immer unless(open, FILE ...
 einmal für die Einsteiger aber für die Praxis doch eher
 open FILE, ... or die ...;
- Formate sollen doch entfallen, war das nicht so?
- printf("%i", 255" );
 Das " ist zu viel.
- $variable0hneNamen ist wirklich ein Spitzen-strict-Beispiel,
 das begreift jeder
- Du hast keys und values für Hashes erklärt,
  da fehlt eigentlich noch scalar(@array) für Arrays
- Bei den Operatoren fehlt eigentlich noch <=> und cmp
  die tauchen einfach so bei sort auf
- | oder |=
 || oder ||=
 und die anderen logischen Operatoren habe ich nicht entdeckt
 oder auch so etwas wie:
 $variable = $eingabewert || $defaultwert;
 $variable = defined($eingabewert) ? $eingabewert : $defaultwert;

Insgesamt kann ich nur sagen: Das ist eine erstklassige Hilfe für Anfänger. Es ist schon fast etwas wie ein Minibuch. Vielleicht könnte da noch ein winziges Inhaltsverzeichnis am Anfang mit ran, daß man nicht alles durchscrollen muß. Also wie gesagt - erste Sahne das Teil. :p\n\n

<!--EDIT|steffenw|1066245593-->
$SIG{USER} = sub {love 'Perl' or die};
Strat
 2003-10-16 03:50
#63549 #63549
User since
2003-08-04
5246 Artikel
ModeratorIn
[Homepage] [default_avatar]
Danke fuer die Kritik.
Ich begann es mal fuer einen Vortrag zu schreiben, den ich in den naechsten Tagen halte; dazwischen kam ein anderer Vortrag, zu dem ich es fertig haben musste. Deshalb sind da einige Sachen nicht drinnen, die ich fuer wichtig halte (z.B. system, backticks, pipe-open) und die ich einfach so dazu gesagt habe, wenn es gepasst hat, dafuer aber die Formate (die wollten die Veranstalter unbedingt haben).

Von der Anordnung der Funktionalitaet: ich habe es halt versucht so anzuordnen, dass man das lernt, was man gerade braucht. Ich finde es in Buechern teilweise nicht so gut zum lernen, wenn man ein Thema erschoepfend behandelt, ohne dass man weiss, wofuer man sowas verwenden kann. Deshalb springt es teilweise ziemlich zwischen den Themen hin und her.
Das unless(open ...) verwende ich aus dem Fall lieber, damit ich den Leuten einen Baustein geben kann, den sie auch erweitern koennen. Bei open (... ) or die $!; ist immer das Problem, dass man da fast sterben muss, waehrend man gerade bei unless(open(...)) { # errorhandling } else { #okAction } sehr viel flexibler sein kann. In meinen Produktionscodes verwende ich ebenfalls fast nie ... or die... weil da meistens noch aufgeraeumt werden muss und Informationen gesammelt werden sollen, die dem Admin die Fehlerbehebung erleichtert.
Was auf jedem Fall noch fehlt ist ein Hinweis auf die Perl-Doku (perldoc, html-Format, ...). Das habe ich dazugesagt; aber wenn ich nicht dabei bin, kann ich nicht viel dazu sagen ;-)

Vielleicht gibt's ja mal einen zweiten Teil mit fortgeschrittenen Themen wie Module, OOP, tie, overload oder auch CGI oder so... schaun wir mal, wann der naechste Vortrag kommt...
perl -le "s::*erlco'unaty.'.dk':e,y;*kn:ai;penmic;;print"
http://www.fabiani.net/
Strat
 2003-10-16 03:51
#63550 #63550
User since
2003-08-04
5246 Artikel
ModeratorIn
[Homepage] [default_avatar]
BTW: ich habe schon fast alle Kritikpunkte eingebaut, kann die neue Version wahrscheinlich erst am Freitag auf meine HP hochladen, weil ich da die Seitenumbrueche wieder anpassen muss\n\n

<!--EDIT|Strat|1066262033-->
perl -le "s::*erlco'unaty.'.dk':e,y;*kn:ai;penmic;;print"
http://www.fabiani.net/
Crian
 2003-10-16 16:06
#63551 #63551
User since
2003-08-04
5866 Artikel
ModeratorIn
[Homepage]
user image
pdf-Dateien sind mir wegen des scheußlichen Scrollverhaltens eigentlich ein Graus, aber ich muss mich dem Lob anschließen. Was mir noch außer den genannten Punkten aufgefallen ist (falls es doch schon dabei war bitte ich um Entschuldigung):

[Mist, man kann nicht per copy und paste kopieren, was für ein Ärger... nimm lieber normale Webseiten dafür. Generell finde ich das Schriftbild auch etwas schwammig...]


Seite 4, hello_3.pl, Beschreibung zu Zeile 4, da steht "$name <STDIN>", da fehlt das Gleichheitszeichen, das im Code auch vorhanden ist.

Seite 4, hello_4.pl, Beschreibung zu Zeile 6, "Zwei Zeichenketten kann man mit dem Operator eq vergleichen." stimmt, aber interessanter ist, dass der Vergleich auf Gleichheit durchgeführt wird. Mit 'ne' kann ich auch zwei Zeichenketten vergleichen...

Seite 7, ++ / -- es wurde ja schon darauf hingewiesen, dass es Unterschiede gibt. Außerdem würde ich ++$i bzw. --$i zuerst nennen, da man immer diese Form verwenden sollte, es sei denn, dass man die andere Form explizit braucht (spart halt eine temporäre Variable).
Bei den Wahrheitswerten, könnte man explizit darauf hinweisen, dass " " wahr ist, auch wenn es aus der Tabelle klar hervorgeht (vielleicht als Bemerkung darunter).

Ich hab jetzt nicht die Zeit, alles durchzulesen... vielleicht später mehr...
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
steffenw
 2003-10-17 00:56
#63552 #63552
User since
2003-08-15
692 Artikel
BenutzerIn
[Homepage] [default_avatar]
Ja ich gebe zu, daß ich auch nicht immer
  ... or die ...;
nehme. Oft kommt
  ... or error('irgendwas' ), weiteres();
oder wenn es viel mehr wird
  ... or do {eins(); zwei(); viele()};\n\n

<!--EDIT|steffenw|1066338044-->
$SIG{USER} = sub {love 'Perl' or die};
betterworld
 2003-10-17 01:21
#63553 #63553
User since
2003-08-21
2613 Artikel
ModeratorIn

user image
[quote=pq,15.10.2003, 13:56]Edit: ausserdem gibt es noch möglichkeit 4: &NameDerRoutine[/quote]
Moeglichkeit 4 verhaelt sich aber anders, naemlich uebergibt sie die Parameter der umgebenden sub-Routine:
Code: (dl )
1
2
3
4
5
6
7
sub foo{
print "$_[0]\n";
}
sub bar{
&foo;
}
bar("hi"); # prints hi
pq
 2003-10-17 01:49
#63554 #63554
User since
2003-08-04
12208 Artikel
Admin1
[Homepage]
user image
[quote=betterworld,16.10.2003, 23:21][quote=pq,15.10.2003, 13:56]Edit: ausserdem gibt es noch möglichkeit 4: &NameDerRoutine[/quote]
Moeglichkeit 4 verhaelt sich aber anders, naemlich uebergibt sie die Parameter der umgebenden sub-Routine:[/quote]
oder besser, sie übergibt das momentan lokale @_-array. das muss nicht von
einer subroutine stammen, kann aber natürlich...
Always code as if the guy who ends up maintaining your code will be a violent psychopath who knows where you live. -- Damian Conway in "Perl Best Practices"
lesen: Wiki:Wie frage ich & perlintro Wiki:brian's Leitfaden für jedes Perl-Problem
<< |< 1 2 3 4 >| >> 39 Einträge, 4 Seiten



View all threads created 2003-10-14 19:00.