Zeichenkette verändern
Jan K.
- perl
0 Christian Kruse0 Jan K.
0 Erwin
Hallo zusammen,
ich hab mir das Buch "Programmieren in Perl" von Rainer Krienke vom Hanser Verlag besorgt, um Perl zu lernen. Nun hänge ich bei den Grundlagen bei der veränderung von Strings fest.
Das Folgende Scriptchen soll nich mehr machen als das Wort einfach in dem string $str durch das wort mehrfach zu ersetzen.
$str="perl ist einfach gut ...";
$search="einfach";
print "$str\n";
$start=index $str, $search;
print "einfach steht ab position $start \n";
substr $str, $start, length($search) = "mehrfach";
print "$str \n";
Das Ergebnis sollte so aussehen:
perl ist einfach gut ...
einfach steht ab position 9
perl ist mehrfach gut ...
Aber statt dessen gibt der Perlinterpreter folgende Fehlermeldung:
Can`t modify length in scalar assignment at c:\string.pl line 6, near ""mehrfach";"
Das erste Beispielscript in dem Buch hatte schon einen simpelen fehler, den man schnell findet. Momentan unterstell ich mal, daß in den beispielscripts in dem Buch absichtlich Fehler eingebaut sind ;) .
Kann mir wer sagen wo der Fehler in dem script liegt? Vieleicht hab ich ja auch nur Tomaten auf den Augen..
你好 Jan,
[…]
substr $str, $start, length($search) = "mehrfach";
[…]Can`t modify length in scalar assignment at c:\string.pl line 6, near ""mehrfach";"
Du musst hier Klammern setzen, da der Interpreter sonst length($search) =
"mehrfach" als einen einzigen Ausdruck wertet. Also besser so:
substr($str, $start, length($search)) = "mehrfach";
再见,
克里斯蒂安
Danke für die schnelle Hilfe.
Zweites beispielscript im Buch, zweiter Fehler im Buch.
Muss wohl irgendwo überlesen haben "zur Übung wurden Fehler in den Besipielscripts versteckt" @_@
Hi, das es sich um Perl handelt wollte ich noch die Substitution einwerfen (TIMTOWTDI ;) ), da ich die Regular Expressions von Perl besonders bevorzuge:
#!/usr/bin/perl
use warnings;
use strict;
my $str = "Perl ist einfach gut ...";
my $search = "einfach";
my $replace = "mehrfach";
print $str."\n";
$str =~ s/$search/$replace/g;
print $str."\n";
Achte v.a. auf die Verwendung von warnings und strict, das erleichtert das Lernen von Perl ungemein!
Das erste Beispielscript in dem Buch hatte schon einen simpelen fehler, den man schnell findet. Momentan unterstell ich mal, daß in den beispielscripts in dem Buch absichtlich Fehler eingebaut sind ;) .
Das ging mir mit Perl-Büchern aus dem b*v - Verlag genauso, einige Beispiele der späteren Kapitel waren vollkommen falsch und unbrauchbar!