Seite 1 von 1

[Perl] Wo ist der Syntaxfehler?

Verfasst: 14.11.2008 22:18
von AND51
Ahoi!

Bei dem Versuch, RSet() in CGI/Perl nachzuprogrammieren tritt immer ein Syntaxfehler auf. Ich finde ihn einfach nicht. Ihr?

Code: Alles auswählen

sub rset # string, length, fillWithString
{
	my $result=shift;
	my $len=(shift||0)-length($result);
	my $fillWith=shift||" ";
	my $fillLen=length($fillWith);
	#return $len;
	if($len > 0) # fill
	{
	   return $fillWith x($len/$fillLen).$result;
	}
	elseif($len < 0) # truncate
	{
		return substr($result, length($result)+$len+1); # negieren, da $len negativ
	}
}
Es muss etwas mit der else-Zeile zu tun haben; schreibe ich da einfach nur else statt elseif($len < 0), dann erscheint der Syntaxfehler.
Ansonsten scheint die Prozedur einwandfrei zu arbeiten, sie füllt und kürzt korrekt.

Hier noch schnell die Fehlermeldung:
CGI::Carp qwq(fatalsToBrowser) hat geschrieben:syntax error at purebasic.pm line 34, near ") # truncate
{"
syntax error at purebasic.pm line 37, near "}"
Compilation failed

[Perl] Wo ist der Syntaxfehler?

Verfasst: 16.11.2008 13:21
von Frank Smart
Hallo,

Code: Alles auswählen


elseif($len < 0) # truncate

solltest Du in:

Code: Alles auswählen


elsif($len < 0) # truncate

ändern. Dann sollte es funktionieren. :wink:

Gruß,

Frank

Verfasst: 16.11.2008 15:00
von AND51
Hallo Frank,

Vielen Dank, es funktioniert!! :o
Ich wusste nicht, dass es in Perl elsif heißt, ich habe einfach fest vermutet, dass es auch dort (wie in PureBasic) elseif heißen muss...

Du kannst mir glauben, das sind so Momente, wo ich mir mit dem Worten "Ouuuuuuh!" an den Kopf packe! Bild

Hab nochmal genauer in einer Perl-Dokumentation nachgesehen und auch dort steht elsif, was ich aber nie beachtet habe...
Nochmals vielen heißen Dank! :allright: