PurePerl »»» Implementierung von Perl in PB

Fragen zu allen anderen Programmiersprachen.
Benutzeravatar
AND51
Beiträge: 5220
Registriert: 01.10.2005 13:15

PurePerl »»» Implementierung von Perl in PB

Beitrag 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 :lol: 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.
Zuletzt geändert von AND51 am 31.03.2007 11:43, insgesamt 3-mal geändert.
PB 4.30

Code: Alles auswählen

Macro Happy
 ;-)
EndMacro

Happy End
Benutzeravatar
AND51
Beiträge: 5220
Registriert: 01.10.2005 13:15

Beitrag 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.
PB 4.30

Code: Alles auswählen

Macro Happy
 ;-)
EndMacro

Happy End
Benutzeravatar
AND51
Beiträge: 5220
Registriert: 01.10.2005 13:15

Beitrag 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 :)
PB 4.30

Code: Alles auswählen

Macro Happy
 ;-)
EndMacro

Happy End
Benutzeravatar
Kiffi
Beiträge: 10711
Registriert: 08.09.2004 08:21
Wohnort: Amphibios 9

Beitrag 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 ;-)
a²+b²=mc²
Benutzeravatar
TomS
Beiträge: 1508
Registriert: 23.12.2005 12:41
Wohnort: München

Beitrag 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.
Benutzeravatar
AND51
Beiträge: 5220
Registriert: 01.10.2005 13:15

Beitrag 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.
PB 4.30

Code: Alles auswählen

Macro Happy
 ;-)
EndMacro

Happy End
Benutzeravatar
Macros
Beiträge: 1361
Registriert: 23.12.2005 15:00
Wohnort: Olching(bei FFB)
Kontaktdaten:

Beitrag 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 ^^)
Bild
Benutzeravatar
Kiffi
Beiträge: 10711
Registriert: 08.09.2004 08:21
Wohnort: Amphibios 9

Beitrag 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
a²+b²=mc²
Benutzeravatar
ts-soft
Beiträge: 22292
Registriert: 08.09.2004 00:57
Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel
Wohnort: Berlin

Beitrag von ts-soft »

>> Wurde der Satz mit Perl gemacht? :lol:

Ist Perl nicht diese unleserliche Spache, wo alles bis zum Erbrechen
abgekürzt wird. Wurde doch für Schreibfaule entwickelt :mrgreen:
Soll sich sogar negativ auf die Rechtschreibung der Nutzer auswirken :mrgreen:

>> Alternativ ginge auch PHP :wink:

Schon besser, jedenfalls Syntaktisch
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.
Bild
Benutzeravatar
TomS
Beiträge: 1508
Registriert: 23.12.2005 12:41
Wohnort: München

Beitrag 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.
Antworten