Seite 1 von 12
PurePerl »»» Implementierung von Perl in PB
Verfasst: 27.03.2007 16:31
von AND51
Hallo!
Seit ich eine neue Homepage aufbaue, setze ich konsequent auf CGI/Perl.
Obwohl Perl sehr gut für Dateioperationen (lesen, bearbeiten, speichern) ausgelegt ist, kann ich mir die Perl-Befehle nicht so gut merken, wie die von PureBasic. Um unter Perl trotzdem Befehle wie
StringField() oder
ExamineDirectory() benutzen zu können, muss man diese in perl nachprogrammieren.
Ich möchte euch in diesem Threaad meine bisherigen Perl-Funktionen vorstellen. Es werden weitere dazukommen.
Ich erhoffe mir durch die Veröffentlichung Reichtum, Macht und Ansehen

aber auch
eure Mithilfe beim Stopfen von Sicherheitslöchern, Beseitigen von Denkfehlern und verbessern der Performance. Im Gegenzug dürft ihr selbstverständlich die Funktionen auf euren Servern einsetzen.
Ich wäre euch sehr dankbar, wenn ihr mitmacht und eure eigenen PB-Perl-Funktionen hier postet. Gemeinsam sind wir stark!
Hinweis: Perl funktioniert natürlich etwas anders, als PB. Vieles geht in Perl einfacher als in PB. Mitmachen kann hier jeder, man sollte aber schon perl-Kenntnisse haben und zum Beispiel wissen, dass Sonderzeichen in Strings mit einem \Backslash\ maskiert werden müssen oder der String in 'einfache Anführungszeichen' gesetzt werden muss, um deren Interpolation zu vermeiden.
Verfasst: 27.03.2007 16:39
von AND51
Sry für den Doppelpost, aber für diesen Thread, der hoffentlich lange bestehn bleibt, möchte ich meine ersten beiden Funktionen übersichtlicher hier reinschreiben.
StringField()
Code: Alles auswählen
sub stringfield # 1. String, 2. Index, 3* Separator=" "
{
return 'Index must be greater than 0!' unless($_[1] > 0);
my @felder;
my $separator=$_[2];
$separator=' ' unless($separator);
@felder=split(/$separator/, $_[0]);
return $felder[$_[1]-1];
}
Funktioneirt wie StringField(), die Zählung der Felder beginnt auch bei 1. Wird der 3. Parameter "Separator" weggelassen, dann wird ein Leerzeichen angenommen. Gibt eine Fehlermeldung zurück, wenn der Index kleiner als 1 ist.
ExamineDirectory()
Code: Alles auswählen
sub examinedirectory # 1. Pfad (. und * etc. maskieren!) (Filtert . und ..)
{
opendir(EXAMINEDIRECTORY, $_[0]) or die "$!";
my @dateien=readdir(EXAMINEDIRECTORY);
closedir(EXAMINEDIRECTORY);
for(my $n=$#dateien; $n >= 0; $n--)
{
splice(@dateien, $n, 1) if($dateien[$n] eq "." or $dateien[$n] eq "..");
}
return @dateien;
}
Funktioniert, wie ExamineDirectory(), man braucht jedoch keine DirectoryID anzugeben. Das mit den Pattern kann man auch noch einbauen, habe ich aber noch nicht. Die Eintrage "." (= aktuelles Verzeichnis) und ".." (= Parentverzeichnis) werden herausgefiltert.
Verfasst: 29.03.2007 14:02
von AND51
Nanu? Hat denn keiner eine Meinung hierzu oder bin ich der einzige PB'ler, der gleichzeitig auf Perl beherrscht?
Etwas mehr Stimmung, Leute

Verfasst: 29.03.2007 14:13
von Kiffi
Ich persönlich mache nix mit Perl.
Eine Möglichkeit, Perl-Funktionalitäten in PB verwenden zu können, fände ich nützlicher.
Grüße ... Kiffi
P.S.:
AND51 hat geschrieben:oder bin ich der einzige PB'ler, der gleichzeitig auf Perl beherrscht?
AND51 hat geschrieben:Obwohl Perl sehr gut [...] ist, kann ich mir die Perl-Befehle nicht so gut merken
ich sehe eine gewisse Diskrepanz zwischen diesen beiden Aussagen

Verfasst: 29.03.2007 14:30
von TomS
>ich sehe eine gewisse Diskrepanz zwischen diesen beiden Aussagen
ich nicht. Ich kann mir auch nicht alle php befehle merken, aber wenn ich was im Kopf habe, schau ich nach, wie der Befehl genau heißt und dann kann ich meine page so bauen, wie ich will. Man muss ja nicht alles auswendig programmieren.
Verfasst: 29.03.2007 14:41
von AND51
Beispiel: Regular Expressions (reguläre Ausdrücke): Ich weiß im groben, wie es funktioniert, aber wenn es darum geht, den richtigen Operator, Multiplikator oder das richtige Metazeichen zu benutzen, muss ich meistens immer nachschlagen.
Kiffi hat geschrieben:Eine Möglichkeit, Perl-Funktionalitäten in PB verwenden zu können, fände ich nützlicher.
Das ließe sich auch einrichten, hast du scho nne Ahnung, welche Funktionen möchtest du gern haben?
Ich persönlich finde, dass PureBasic von Perl
um Läääääängen schlägt, wenn es beispielsweise um die Ver-/Bearbeitung von Strings geht.
Verfasst: 29.03.2007 15:08
von Macros
AND51 hat geschrieben:Ich persönlich finde, dass PureBasic von Perl um Läääääängen schlägt, wenn es beispielsweise um die Ver-/Bearbeitung von Strings geht.
Wurde der Satz mit Perl gemacht?
Dann halte ich nicht viel von der Sprache :P
Was kann den Perl z.B? (wenn ich dich richtig verstanden habe ^^)
Verfasst: 29.03.2007 15:12
von Kiffi
AND51 hat geschrieben:Das ließe sich auch einrichten, hast du scho nne Ahnung, welche Funktionen möchtest du gern haben?
Alle
Na, da kenne ich mich zu wenig mit Perl aus, um hier eine Aussage treffen zu
können. Aber die von Dir erwähnte RegExp-Funktionalität wäre doch schon
mal ein Anfang, oder? Im Prinzip alles, was Perl so besonders macht und was
in PB nicht oder nur schwer machbar ist.
Alternativ ginge auch PHP
Grüße ... Kiffi
Verfasst: 29.03.2007 15:28
von ts-soft
>> Wurde der Satz mit Perl gemacht?
Ist Perl nicht diese unleserliche Spache, wo alles bis zum Erbrechen
abgekürzt wird. Wurde doch für Schreibfaule entwickelt
Soll sich sogar negativ auf die Rechtschreibung der Nutzer auswirken
>> Alternativ ginge auch PHP
Schon besser, jedenfalls Syntaktisch
Verfasst: 29.03.2007 16:40
von TomS
>Ist Perl nicht diese unleserliche Spache, wo alles bis zum Erbrechen abgekürzt wird
Meinst du ASM?
Also die Codebeispiele, die ich in Perl gesehen habe, ähneln syntaktisch sehr phpcode. Kann mich aber auch irren.