[vienna.pm] Probleme mit einem script

roland.bauer at fff.at roland.bauer at fff.at
Thu Aug 5 00:23:34 CDT 2004


* * * vienna-pm-list * * *


> open (EIN, "/bin/ls *.asc |");
> @files=<EIN>;
> close (EIN);
> $nf=@files;
> $n=0;
> for ($m=0 , $m <5 , $m++)
> {
> print "$n ";
> print "<a href=\"$files[$n]\">$files[$n]</a><br>";
> $n++;}

Der entscheidende Fehler war, dass Du im "for"-Ausdruck
(in diesem Fall) Strichpunkte verwenden musst.

Es gibt naemlich zwei Arten von for-Ausdruecken:

1) for ( ... ; ...; ...) = 3 Befehle, durch ";" getrennt
2) for (@liste)

Du hast Typ 1 gemeint, aber wegen der Beistriche wurde Dein
dreiteiliger Ausdruck als Liste mit folgenden 3 Elementen
interpretiert: ($m=0 , $m <5 , $m++)

Versuch einmal diese Version:
####################################
 #use strict;
 @files= glob "*.asc";
 close (EIN);
 $nf=@files;
 $n=0;
 for ($m=0 , $m <5 , $m++)
 {
	 print "$n ### $m\n"; # <<<<<< \n ergaenzt
	 print "<a href=\"$files[$n]\">$files[$n]</a><br>\n"; # <<< \n ergaenzt
	 $n++;
 }
####################################

Da habe ich die Beistriche noch nicht ausgebessert ...


So geht es auch:
#################
 use strict;
 my $n;
 for (glob "*.asc")
 {
 	print $n++, "\n";
	print qq(<a href="$_">$_</a><br>\n);
 }
########################

Und immer use strict verwenden ...

Schoene Gruesse
Roland


---------------------------------------------
This message was sent using Endymion MailMan.
http://www.endymion.com/products/mailman/


###
You are subscribed to vienna-pm-list as roland.bauer at fff.at
http://www.fff.at/fff/vienna.pm/



More information about the Vienna-pm mailing list