Parameter im Unterprogramm
Manuel Burghammer
- perl
tagchen,
folgender scriptauschnitt funktioniert:
foreach $file(@files) {print "$file<br>";}
folgender aber nicht:
if (substr($line,0,12) eq "<!--files-->") {
foreach $file(@files) {
print "$file<br>";
}
}
ich steh irgendwie aufm schlauch......der string fuer die ausgabe passt aber ich krieg die daten nicht mehr her.......entweder ich sitz schon wieder zulange am rechner oder ich kauf noch mal ein PERL anfaengerbuch....aber ich komm nicht auf die loesung :o((
bitte um hilfe.....und wenn ich zu doof war duerft ihr mir das auch sagen.......
thx4hlp
Hallo Manuel,
if (substr($line,0,12) eq "<!--files-->") {
»» foreach $file(@files) {
print "$file";
»» }
}
Wo ist den hier der Parameter des Unterprogramms? Was soll den in $line stehen, und wo wird die Variable "gefüllt" und was steht wirklich drin?
Hast Du es schon mal mit: if ($line =~ /<!--files-->/) probiert (wenn das die stelle ist woran Dein Code scheitert ;-)?
[...] und wenn ich zu doof war duerft ihr mir das auch sagen.......
Das werde ich nicht tun ;-)) [SCNR]
Gruß AlexBausW
tagchen,
Wo ist den hier der Parameter des Unterprogramms? Was soll den in $line stehen, und wo wird die Variable "gefüllt" und was steht wirklich drin?
Hast Du es schon mal mit: if ($line =~ /<!--files-->/) probiert (wenn das die stelle ist woran Dein Code scheitert ;-)?
das problem ist das innerhalb der 'if' schleife auf einamal das array '@files' leer ist. wenn ich die if-schleife weglasse wird das array aber ausgegeben...nur nicht an der stelle wos ausgegeben werden soll :o(
Das werde ich nicht tun ;-)) [SCNR]
dummerweise weiss ich grad nicht was SCNR heisst..~gg~
aber ich werds mal auf umwegen versuchen....mir aschwebt da schon was vor bis ich ne andere loesun g finde......
Hallo Manuel,
das problem ist das innerhalb der 'if' schleife auf einamal das array '@files' leer ist. wenn ich die if-schleife weglasse wird das array aber ausgegeben...nur nicht an der stelle wos ausgegeben werden soll :o(
Bist Du Dir auch sicher, daß die If-Bedingung überhaupt erfüllt ist, bzw. der If-Block überhaupt durchlaufen wird? Versuch doch mal in If-Block eine Ausgabe zu erzwingen (print "Hier ist IF";) und häng` einen Else-Block an (ebenfalls mit einer Ausgabe) damit Du sehen kannst, was überhaupt durchlaufen wird.
Was sagt denn der Compiler beim Checken mit "perl -cw skript.pl" bzw. sind beim Ausführen die Warnings eingeschaltet? Wenn ja, sollte es nämlich beim Versuch eine nicht initialisierte Variable auszugeben Meldungen hageln :-) (Tut es bei mir jedenfalls ;-). "use strict;" kann Scherereien mit Variablen verhindern, da nicht mit my() oder local() deklarierte Variablen "angemeckert" werden. Dann weist Du auch, ob es am umschließenden Block, oder an der Bedingung liegen kann.
Gruß AlexBausW
P.S.: skalare Variablen beim Ausgeben in Anführungszeichen zu schreiben, wenn nicht noch weiterer Text damit verquickt werden soll, ist imho nicht nötig.
hallo alex,
ich hab das jetzt anders geloest:
$files = join('<br>', @files);
$line =~ s/<!--files-->/$files/;
so funzt das ganze und zusaetzlich spar ich noch 2 zeile scriptcode :o))
aber danke fuer deine muehe