|
|
Thema Perl Samstag, 3.3.2007, 00:00:00 Uhr
lc() in Perl - Alle Buchstaben in Kleinbuchstaben umwandeln Der Befehl lc () wandelt alle Buchstaben eines Skalars in Kleinbuchstaben um. Alle? Nein, nicht alle. Ein paar unbeugsame nicht-amerikanische Sonderzeichen sträuben sich dagegen... oder mal im Ernst: Die Umlaute und Sonderzeichen aller möglichen Sprachen, im deutschen also ÖÄÜ, werden nicht umgewandelt.
Syntax $t=lc($t);
Weiterlesen...
Freitag, 2.3.2007, 00:23:28 Uhr
Vorrausschauende und zurückblickende Suche mit regulären Ausdrücken Vorausschauende und zurückblickende Suche mit Perl - hört sich ja mächtig kompliziert an! Daß diese Suchart aber durchaus sinnvoll und auch praktisch ist, sieht man im ersten Beispiel:
my $t = "Bandwurm Regenwurm Regenschirm Regenschauer"; if($t =~ /Regen(?=scha)\w+/) { print "gefunden ($&)"; } else { print "nicht gefunden"; } # Test 1
|
Ausgabe: gefunden: Regenschauer
Weiterlesen...
Donnerstag, 1.3.2007, 11:37:51 Uhr
HTML-Code ausgeben mit Perl Wer viel für Webseiten programmiert, muß natürlich Text auf die Seiten bringen. Wie immer (wer hätte das gedacht...) gibts dafür in Perl mehrere Wege.
Beispiel 1: Mit print
print "<a href=\"link.htm\" target=\"_blank\">Link</a>";
|
Yo, also das funktioniert schon, ABER: Wie Sie vielleicht sehen, bricht man sich beim Schreiben solcher Ausgaben die Finger mit den \", geschweige denn, daß es Fehlermeldungen hagelt, wenn man mal ein \ vor dem " vergißt. Weiterlesen...
Donnerstag, 1.3.2007, 00:20:15 Uhr
Kommentare in regulären Ausdrücken Mal unter uns: Wer kennt nicht das Problem, daß man irgendwann mal einen ganz tollen RegEx ausgetüftelt hat und nach einem Jahr nicht mehr weiß, wie das Ganze funktioniert... Darum hat Perl die Möglichkeit vorgesehen, Kommentare in regulären Ausdrücken einzufügen!
Kommentare fügt man in Klammern wie diesen "(?#...)" in eine RegEx ein.
my $t = "Test"; if($t =~ /Test(?# suche das Wort Test)/) {...}
|
Weiterlesen...
Mittwoch, 28.2.2007, 09:52:54 Uhr
Was man mit RegEx tun sollte und was nicht Reguläre Ausdrücke sind eine große, mächtige Fähigkeit in Perl, alle möglichen Dinge mit Zeichenketten anzustellen. Suchen, ersetzen und löschen von Teilen eines Skalars lassen sich damit ziemlich komplex und sehr variabel umsetzen. Diese Komplexität und Flexibilität hat aber einen Nachteil: Für manche Aufgabenstellungen sind RegEx eigentlich zu langsam, bzw. es gibt wesentlich schnellere Varianten ohne RegEx.
Suchen nach festen Inhalten eines Skalars
$t="test"; if ($t=~ /te/){ ... }
|
Weiterlesen...
Mittwoch, 28.2.2007, 00:06:26 Uhr
chr() in Perl - Zeichen anhand seines ASCII-Codes ermitteln und ausgeben Mit dem Befehl chr() kann man ein Zeichen anhand seines ASCII-Codes ausgeben. Allerdings sind zum großen Teil nur Zeichen > 32 darstellbar, da die darunter liegenden Zeichen meist als Steuerzeichen verwendet werden.
Syntax: $zeichen = ord ($asciicode);
#!/usr/bin/perl -w use strict; use CGI::Carp qw(fatalsToBrowser);
print "Content-type: text/html\n\n<html><body><h1>ASCII-Zeichentabelle</h1>";
my ($i,$j,$zeichenwert); $zeichenwert=32; print "<table>";
for ($i=0;$i<12;$i++){ print "<tr>"; for ($j=0;$j<8;$j++){ print "<td width=\"12%\">Code $zeichenwert: "; print chr($zeichenwert)." "; print "</td>"; $zeichenwert++; } print "</tr>"; } print "</table></body></html>";
|
Weiterlesen...
Dienstag, 27.2.2007, 10:16:56 Uhr
Bestimmte Dateien eines Ordners suchen - Suchen nach Dateiendungen - Beispiel aus der Praxis Oft steht man vor dem Problem, daß man aus einem bestimmten Ordner alle Dateien eines bestimmten Typs suchen muß. Natürlich ging auch mir das schon öfters so, also hab ich mir eine kleine Funktion gestrickt, die mir alle Dateien zurückgibt.
#!/usr/bin/perl
# zum Testen der Funktion
use strict;
print join("\n",&alle_dateien("./","txt")); exit;
sub alle_dateien{ # Parameter 1: Ordnername, relativ zum Script # Parameter 2: Endung ohne . # gibt alle Dateien als Array zurück (unsortiert) # $endung = leer : Alle Dateien zurückgeben
my $ordner=shift; my $endung=shift; die "Kein Ordner angegeben" if ($ordner eq '');
if ($endung ne ''){ $endung=~ s/^\.//; $endung='\.'.$endung; } local *in;
opendir (in,"$ordner") || die "Can not open directory $ordner: $!";
return grep {$_=~ /$endung$/ && !-d "$ordner/$_" } readdir(in); }
|
Weiterlesen...
Dienstag, 27.2.2007, 00:10:03 Uhr
crypt() in Perl - Zeichenketten verschlüsseln Mit der Funktion crypt ist es in Perl möglich, Zeichenketten zu verschlüsseln.
Syntax: $verschluesselt=crypt($original,$salt);
$salt stellt einen Skalar dar, der mindestens aus 2 Zeichen bestehen sollte. Mit diesem Skalar wird die Originalzeichenkette verschlüsselt. Weiterlesen...
Montag, 26.2.2007, 07:37:51 Uhr
Alternativen in regulären Ausdrücken - Oder-Suche mit RegEx Manchmal möchte man in regulären Ausdrücken eine Oder-Suche durchführen. Dies wird ermöglicht durch den |-Operator im Suchteil des regulären Ausdruckes.
Beispiel:
my $t="test"; if ($t=~ /haus|test|maus/){print "gefunden $&";} else {print "nicht gefunden";}
|
Weiterlesen...
Freitag, 23.2.2007, 10:12:34 Uhr
Arrays in Perl - Besonderheiten Was ein Array in Perl ist sollte ja hinlänglich bekannt sein.
Es gibt allerdins auch noch einige Besonderheiten, auf die man hier hinweisen könnte:
Anzahl der Elemente eines Arrays Will man wissen, wie viele Elemente in einem Array vorhanden sind, kann man dies ganz einfach mit: Weiterlesen...
|
|
|
|
| Gelesene Beiträge insgesamt: 4424003 |
|
|