Sahanya

Sonntag, 30. 05. 2004

Mit Dateien und Ordnern arbeiten

Filed under: — Sahanya @ 14:08

Wie man Dateien einliest und erstellt habe ich ja schon hier behandelt und wie man sie auf verschiedene Eigenschaften testet hier. Jetzt geht es darum, wie man Dateien und Ordner erstellt, löscht, kopiert oder umbenennt und wie man dabei in Verzeichnissen navigiert.

(weiterlesen…)

Donnerstag, 20. 05. 2004

Ausgabeformat

Filed under: — Sahanya @ 13:18

Möchte man das Ausgabeformat einer Eingabe (im Folgenden die Datei themen.txt) beeinflussen hilft einem format weiter.

(weiterlesen…)

Montag, 17. 05. 2004

Dateien testen

Filed under: — Sahanya @ 20:45

Dateien können auf die unterschiedlichsten Sachen hin getestet werden. Dazu zählt insbesondere das Überprüfen, ob es diese Datei schon gibt (-e), um ein Überschreiben zu verhindern. Außerdem kann man auch testen, ob eine Datei überhaupt lesbar (-r) bzw. ausführbar (-x) ist und wann sie das letzte mal geändert (-M) wurde.

Eine Ausführliche Liste findet man hier. Und hier ein praktisches Beispiel:

(weiterlesen…)

Kontrollstrukturen II

Filed under: — Sahanya @ 20:04

Eine Ergänzung zu Kontrollstrukturen bzw. Schleifen, sind die Befehle last, redo und next .

(weiterlesen…)

Sonntag, 02. 05. 2004

Bedingungen und Schleifen/Kontrollstrukturen

Filed under: — Sahanya @ 11:00

Um nur unter bestimmten Bedingungen Teile eines Perlskriptes zu aktivieren, verwendet man die folgenden Ausdrücke: if ... else, if ... elsif ...else, unless, while, until, for, foreach. Hier einige Beispiele:

(weiterlesen…)

Subroutinen

Filed under: — Sahanya @ 09:56

Subroutinen rufen Anweisungen auf, die an einer anderen Stelle im Programm definiert werden. Dies geschieht meistens entweder am Ende oder am Anfang.

Subroutinen geben dabei immer ihren letzten Wert aus. Hier einige Beispiele für den Umgang mit Subroutinen:

(weiterlesen…)

Montag, 26. 04. 2004

Split und Join

Filed under: — Sahanya @ 19:37

Um eine Zeichenkette in einer Variablen aufzuteilen und sie in eine Liste bzw. ein Array einzufügen wird die Funktion split verwendet. Im folgenden wird aus $a immer @worte qw = ("Sahanya" "lernt" "PHP").

$a = "Sahanya-lernt-PHP";
@worte = split (/-/,$a);
entfernt Bindestriche

$a = "Sahanya lernt PHP";
#@worte = split (/\s+/,$a);
entfernt Leerzeichen

Arbeitet man mit der Standardvariable $_ und möchte dort Leerzeichen entfernen, geht das so:

$_ = "Sahanya lernt PHP";
@worte = split;

Umgekehrt kann man mit join auch Werte aus Listen bzw. Arrays durch Trennzeichen in eine Skalarvariable schreiben:

@worte = qw (
Sahanya
lernt
PHP
);
$a = join (" ",@worte);

Also ist jetzt $a = "Sahanya lernt PHP"

Andere Perl-Themen

Sonntag, 25. 04. 2004

Ersetzen

Filed under: — Sahanya @ 13:03

Das Ersetzen von einzelnen Zeichen oder auch Mustern habe ich ja schon vereinzelt angesprochen, hier jetzt einige Ergänzungen:

$_= "Sahanya lernt PHP";
s/a/o/;
print $_;
#Sohanya lernt PHP (ersetzt wird nur das erste a)

$_= "Sahanya lernt PHP";
s/a/o/g;
print $_;
#Sohonyo lernt PHP (es werden alle as ersetzt)

$_= "Sahanya lernt PHP";
s/h/y/g;
print $_;
#Sayanya lernt PHP (es werden alle hs ersetzt)

$_= "Sahanya lernt PHP";
s/h/y/gi;
print $_;
#Sayanya lernt PyP (es werden alle hs ersetzt, egal ob groß oder klein)

$_= "Sahanya lernt PHP";
s/(\w+)/-$1-/g;
print $_;
#-Sahanya- -lernt- -PHP-

(weiterlesen…)

Samstag, 24. 04. 2004

Spezielle Variablen

Filed under: — Sahanya @ 19:01

Perl legt bestimmte Muster in Standard-Variablen ab, die sich allerdings immer wieder neu überschreiben.

Eingaben, die keiner speziellen Variablen zugeordnet werden, werden zu $_.

Möchte man nur Teile einer Variable ausgeben, kann das so aussehen:

#!\usr\bin\perl -w
$_ = "Sahanya versucht PHP zu lernen";
/v.{3}ucht/;

print "$`\n"; Ausgabe: Sahanya (der Ausdruck vor dem gesuchten Wort)
print "$&\n"; Ausgabe: versucht (das gesuchte Wort)
print "$'\n"; Ausgabe: PHP zu lernen (der Ausdruck hinter dem gesuchten Wort)

Andere Perl-Themen

Muster

Filed under: — Sahanya @ 13:33

Verschiedene Muster können auf unterschiedliche Weise verwendet werden, z.B. um Ersetzungen vorzunehmen oder aber auch um diese in einer bestehenen Skalarvariable zu finden bzw. zu sehen, ob das Muster paßt ( =~ m/muster/) — m: match bzw. passen

(weiterlesen…)

Montag, 19. 04. 2004

Mit Hashs arbeiten

Filed under: — Sahanya @ 18:53

Ergänzung zum Beitrag Hash.

(weiterlesen…)

Montag, 12. 04. 2004

Mit Arrays arbeiten

Filed under: — Sahanya @ 22:03

Nachdem Arrays hier vorgestellt wurden, jetzt einige praktische Beispiele:

(weiterlesen…)

Sonntag, 11. 04. 2004

chop und chomp

Filed under: — Sahanya @ 14:04

Der Befehl chop entfernt das letzt Zeichen einer Skalarvariabel:

$a = "Sahanya";
chop ($a);
# Sahany (letzter Buchstabe fehlt)
chop ($a); #Sahan (“)

Während der Befehl chomp sich nur auf den Newline-Befehl \n bezieht.

Eine Eingabeaufforderung mit <STDIN> wird in der Regel mit chomp beendet, um sicherzustellen, dass das Newline-Zeichen entfernt wird:

$eingabe = <STDIN>;
chomp $eingabe;

Das ganze geht aber auch kürzer:

chomp ($eingabe = <STDIN>);

Manchmal sollte bzw. muss man allerdings nach einer Eingabeaufforderung auch auf den chomp-Befehl verzichten, z. B. wenn man möchte, dass ein Wert in getrennten Zeilen untereinander ausgegeben wird.

(weiterlesen…)

Vergleichsoperatoren

Filed under: — Sahanya @ 10:32
Zahl Zeichen
gleich (equal) == eq
ungleich (not equal) != ne
kleiner als (lesser than) < lt
größer als (greater than) > gt
kleiner oder gleich (less or equal) <= le
größer oder gleich (greater or equal) >= ge

Vergleichsoperatoren für Zahlen und Zeichenketten sollte man tunlichst nicht verwechseln, denn 5 ist kleiner als 20 >, aber 5 lt 20 ist nicht wahr, denn 2 kommt vor 5.

Andere Perl-Themen

Operatoren für Zeichenketten

Filed under: — Sahanya @ 10:22

Ein Punkt hängt Zeichenketten aneinander, ein x gibt die Zeichenkette x-mal aus:

print "sahanya"."perun"; #sahanyaperun
print "sahanya"." "."perun"; #sahanya perun
print "sahanya" x 3; #sahanyasahanyasahanya
print 5 x 3; # 555

Setzt man Skalarvariablen bei der Aneinanderhängung von Zeichenketten ein, sieht das ganze so aus:

$a = "sahanya";
$b = "perun";
$a = "$a"."$b";
print $a;
#sahanyaperun

Kürzer geht die Aneinanderhängung von Zeichenketten auch so — anstatt der dritten Zeile im obigen Beispiel:

$a .= $b;

Andere Perl-Themen

Operatoren für Zahlen

Filed under: — Sahanya @ 09:42

Um mit Zahlen zu rechnen kann man eigentlich seiner Intuition folgen :-) Damit das auch immer funktioniert, hier die Operatoren:

(weiterlesen…)

Freitag, 09. 04. 2004

Sonderzeichen

Filed under: — Sahanya @ 10:59

Gibt man in Perl Text innerhalb von doppelten Anführungszeichen ein, kann man zusätzliche Befehle durch die Abtrennung von einem Backslash anfügen:

Das einfachste Beispiel ist wohl "Hallo Welt\n"

Weitere Befehle sind …

(weiterlesen…)

Sonntag, 04. 04. 2004

Einfacher Umgang mit Dateien

Filed under: — Sahanya @ 16:36

Um eine vorher erstellte Datei einzulesen gibt man folgenden Code ein:

#!/usr/local/bin/perl -w

open (DATEILESEN,"test.txt") || die "geht nicht";
#öffnet dieses Datei oder Fehlermeldung
while (defined ($i = <DATEILESEN>)) { #gibt solange etwas aus bis kein Text mehr da ist
print $i }
close (DATEILESEN);
#schließt die Datei wieder

Möchte man, dass der Text der test.txt in eine ander Datei (hier test1.txt) kopiert wird, geht das so:

#!/usr/bin/perl -w

open (DATEILESEN,"test.txt") || die "einlesen geht nicht";
open (DATEISCHREIBEN, "> test1.txt") || die "schreiben funktioniert nicht";
while (defined ($i = <DATEILESEN>)) {
print DATEISCHREIBEN $i }
#schreibt das gefundene in die neue Datei
close (DATEILESEN);
close (DATEISCHREIBEN) || die "Fehler beim Schließen\n";

Möchte man, dass der Text in einer Datei nicht überschrieben wird, sondern drangehängt wird, muss man dem Dateinamen zwei > voranstellen.

Andere Perl-Themen

Freitag, 02. 04. 2004

Hash

Filed under: — Sahanya @ 18:13

Ein Hash ist ein Array mit assoziativen Elementen, d. h. diese stehen miteinander in Beziehung. Das einfachste Beispiel wäre eine Liste mit Namen und den dazugehörigen Paßworten.


%hash = qw (
sahanya passwort1
perun passwort2
);

Angesprochen werden einzelne Elemente so:

(weiterlesen…)

Array

Filed under: — Sahanya @ 17:56

Ein Array besteht aus mehreren Variablen und ist wie folgt aufgebaut:

@array = "Sahanya", "Perun" oder einfacher

@array = (Sahanya Perun)

Möchte man auf einzelne Variablen zugreifen, so geht das mit einer sogenannten Indexreferenz:

$array[0] — hier wird auf Sahanya zugegriffen

$array[1] — hier wird auf Perun zugegriffen

Der Array kann auch als Indexreferenz zusammengefaßt werden und wird dann mit $array[$i] angesprochen. Einzelne Elemente wären dann $i = 0 (Sahanya) bzw. $i = 1 (Perun).

Andere Perl-Themen

„flexible” Skalarvariablen

Filed under: — Sahanya @ 17:44

Möchte man bei der Überprüfung von Skalarvariablen, die über die Eingabe $name = <STDIN> erfolgt sind, z. B. bei der Frage nach einem Namen (hier für das Beispiel Sahanya) mehrere Varianten zulassen, so gibt es folgende Möglichkeiten:

(weiterlesen…)

Hilfe

Filed under: — Sahanya @ 17:23

Möchte man, dass Perl einem eine Fehlermeldung ausgibt, die Hinweise auf Ursachen liefert, muss man die Eingangszeile um “-w” erweitern, so dass sie dann folgendermaßen aussieht:

#!/usr/bin/perl -w

Hilfe zu einzelnen Befehlen erhält man, wenn man folgendes eintippt:

perldoc -f befehl

Andere Perl-Themen

Freitag, 26. 03. 2004

Perl Beine machen …

Filed under: — Sahanya @ 19:52

… oder wie bringe ich Perl-Skripte zum Laufen:

Also man braucht 3 Sachen:

1. Perl
2. einen lokalen Webserver, ich nutze Apache
3. einen Editor, ich nutze Proton (es geht aber auch mit einem normalen Texteditor wie notepad o. ä.)

ach ja und Geduld!

(weiterlesen…)

Perl – der Anfang

Filed under: — Sahanya @ 17:29

Einführung in Perl So, eine neue Kategorie geht online :)

Da ich aus beruflichen Gründen (aber auch aus privatem Interese) Perl lernen möchte, werde ich hier (wie immer in unregelmäßigen Abständen) meine Lernerfolge und -mißerfolge (davon wird es bestimmt einige geben) kundtun. Außerdem werde ich Links posten, die mir bei meiner Lernerei geholfen haben und vielleicht auch schon bald kleine Skripte bzw. Erläuterungen zu Begriffen aus der Perl-Sprache.

Zum Lernen benutz ich zur Zeit das Buch „Einführung in Perl” von Randal L. Schwartz und Tom Christiansen.

Zu allererst: „Perl” steht für Practical Extraction and Report Language oder auch für Pathologically Eclectic Rubbish Lister.

Freuen würde ich mich natürlich über Tipps und Kommentare von Profis bzw. anderen „Perl-Lernern”.

Themen:
Perl Beine machen
Hilfe
„flexible” Skalavariablen
Array
Hash
Einfacher Umgang mit Dateien
Sonderzeichen
Operatoren für Zahlen
Operatoren für Zeichenketten
Vergleichsoperatoren
chop und chomp
Mit Arrays arbeiten
Mit Hashs arbeiten
Muster
Spezielle Variablen
Ersetzen
Split und Join
Subroutinen
Bedingungen und Schleifen/Kontrollstrukturen
Kontrollstrukturen II
Dateien testen
Ausgabeformat
Mit Dateien und Ordnern arbeiten

 

Powered by WordPress | Angepasst von: www.vlad-design.de