Thread Zeichen durch Zeichenfolge ersetzen (12 answers)
Opened by PETER_PAN2009 at 2010-06-23 13:45

Sven_123
 2010-06-23 18:24
#138872 #138872
User since
2010-06-01
120 Artikel
BenutzerIn
[default_avatar]
1. Da hab ich dich und das Tutorial wohl falsch verstanden. Mir ging es um den Unterschied:
Code (perl): (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
my ($x,$y);

$y=5;
$x=&blubb;

sub blubb{
  my $z;

  $z=3;
  $z += $y;
  $z;
}

# und

my $y=5;
my $x=&blubb;

sub blubb{
  my $z=3;
  $z += $y;
  $z;
}

Dass die Einschränkung der Variablen auf die Teile des Programms, die sie benötigen sinnvoll ist, ist klar.

2. Ich hab überlegt, ob ich schreiben soll, oder nicht, eben weil ich kaum Erfahrung hab. (Hab vor nem Jahr angefangen mir mit Perl Zahlenkolonnen in eine Spalte zu schreiben um sie danach per Hand vor die Zeilen einer anderen Datei zu kopieren, weil's schneller ging als tippen und das später mit irgendwo aus dem Internet kopierten Ausdrücken automatisiert und etwas erweitert. So richtig mit Verständnis (oder zumindest dem Versuch*g) bastel ich erst, seit mir hier vor drei Wochen das mit den Referenzen erklärt worden ist und ich danach das Lamabuch durchgelesen hab...)
Aber ich hab mir (richtigerweise) gedacht, dass so und so jemand noch eine geschicktere Version posten wird und mir netterweise gleich sagen wird, was ich wo verbessern muss.*g
"use autodie" hört sich nach einer bequemen Lösung an. :)

4. Ok, ehrlich gesagt find ich das Beispiel von ihm etwas weit hergeholt (oder ich hab's nicht richtig verstanden), aber andererseits ist es nicht viel Umstand da ein $ davorzupacken. Was das "global" angeht - sobald ich ein "close FH" (um mich an sein Bsp. zu halten) schreibe, ist FH doch wieder nicht definiert (oder wie man das schreibt). D.h. allein für den Speicher, oder was da sonst mit dranhängt sollte es keinen Unterschied machen, ob ich
Code (perl): (dl )
1
2
3
4
5
6
7
8
9
10
open (INP, "< datei") or die "keine datei";
mach was;
close INP;

# oder

{
  open (my $inp, "< datei") or die "keine datei";
  mach was;
}
schreibe, oder?

5. Im großen und ganzen waren alles ernst gemeinte Fragen, also ein Nachhaken um die Gründe zu erfahren und sollte keine Wortklauberei, oder so sein. (Nur wegen deinem "in 5 Jahren".)
Bei ernsthafteren Scripten werd ich mir Mühe geben sie durchsichtiger und fehlerunanfälliger zu schreiben, aber zur Zeit ist das meiste einfach Spielerei und da ist es eher so, dass ich mehr Spaß dran hab, wenn das Programm besonders unleserlich ist.
Meine Lösung zu der Übungsaufgabe "Programm soll Zeile aus <STDIN> einlesen und geschriebene Wörter und die Anzahl, wie oft sie vorkamen ausgeben." aus dem Buch:
Code (perl): (dl )
1
2
3
4
5
#!/usr/bin/perl
chomp ($_ = <STDIN>);
@x = split;
foreach $x (@x){$x{$x} += 1}
foreach $x (sort keys %x){print "$x: $x{$x}\n"}
Aber ja, ich erinnere mich, dass das es hier um anderes geht... :)
Last edited: 2010-06-24 08:29:40 +0200 (CEST)

View full thread Zeichen durch Zeichenfolge ersetzen