Perl und seine Globs#

Artikel auf Anregung von JensKapitza und der DULUG.
Bitte verbessern, wenn ich hier Mumpitz® schreibe --MarkusMonderkamp
Der Begriff glob (global operator) ist in Perl doppelt belegt, sozusagen ein Teekesselchen.

1. Es gibt den fileglob, mit dem das Skript ein array von Dateien zurückliefert, die den in dem Globpattern aufgeführten Text enthalten:#

@dateien = glob("kommendeLottozahl*");

... liefert z.B. die Dateien kommendeLottozahl.xls, kommendeLottozahlen.xls und kommendeLottozahlfalschvorhersageSchadenersatz.odf

anderes Beispiel:

~/src/pl> perl -le'print foreach glob "kiki*"'
kiki1.txt
kiki2.txt
kikiunendlich.txt
näheres unter: perldoc -f glob im Manual

2. Dann gibt es den typeglob: #

Perl besitzt noch mehr Variablentypen, wie z.B. Hash, handle, typeglob, und alle besitzen zur Unterscheidung auch so ein lustiges kleines Zeichen davor. Hier eine kleine Liste aller lustigen Zeichen, mit denen man sich noch beschäftigen kann.

Typ Zeichen Beispiel Ist ein Name für:
Skalar $ $bsp Ein individueller Wert (Zahl oder String)
Array @ @test Eine Liste von Werten mit einer Ganzahl als Index
Hash % %zinsen Ein Gruppe von Werten mit einem String als Index
Subroutine & &was Ein aufrufbares Stück Perl-Code
Typeglob * *maus Alles namens maus

Code-Beispiel:

$spud   = "Wow!";
@spud   = ("idaho", "russet");
*potato = *spud;   # Zuweisung eines Typeglob-Alias' / Alias potato to spud using typeglob assignment
print "$potato\n"; # prints "Wow!"
print @potato, "\n"; # prints "idaho russet"

nettes Spielzeug

Ich habe typeglobs noch nie wirklich benutzt und denke auch, daß das kaum jemand tut. Es ist ein Relikt aus den Urzeiten von Perl und wurde früher benutzt, um Arrays an Funktionen zu übergeben, als es in der Sprache noch keine Referenzen gab (siehe perldoc perldata). Im Grunde ist das eine der Spracheigenschaften, die wirklich nur Verwirrung bringen. Wenn man einen Typeglob zuweist ist das im Grunde, als ob man ein Struktur mit einem Skalar, einem Array und einem Hash zuweist. Den Fall, in dem man das wirklich so braucht und wo es die Lesbarkeit erhöht statt zu vermindern, müsste man IMO mit der Brechstange konstruieren (Hallo Jens!).
Die einzige echte Anwendung, die ich mal hatte ist, daß neben den o.g. Typen auch Filehandles "geglobbt" werden, die anderweitig nicht so leicht zuweisbar sind. Dies hat sich jedoch mit Einführung der file-Referenz-Objekte (ab Perl 5.6) auch erledigt. Die Anwendungen für typeglobs reduzieren sich damit aus meiner Sicht auf ganz wenige Fälle z.B. für code obfuscation. -- ThomasBayen
Erläuterungen: deutsch und englisch1 und englisch2.

Tags:  Perl

Add new attachment

Only authorized users are allowed to upload new attachments.
« This page (revision-6) was last changed on 21-Jan-2008 13:25 by ThomasBayen