hotti: Perl-Vergleich für zwei Variabeln gleichzeitig

Beitrag lesen

Moin,

Perl ist eine gute Wahl, wenn es um Dateien geht und Jeder fängt wohl mal mit CSV-Dateien an, wenn es darum geht, eigene 'Daten' im FS abzulegen. Etwas besser strukturiert und trotzdem noch gut zu bearbeiten, sind Textdateien in Stil eine ini:

[section]
parameter = value
p = v

[object-id]
attribut = value

[oid]
att = val

Am zweiten und dritten Abschnitt siehst Du schon: Das geht in Richtung OOP ;)

Zum Lesen von iniDateien gibt es ein erstklassiges Modul 'Config::IniFiles', das ist pures Perl und kann entweder ins eigene Libverzeichnis kopiert oder wie üblich installiert werden. Hast Du ActivePerl, tipp mal auf der Kommandozeile ein:

ppm install Config::IniFiles

oder Linux &co

cpan -i Config::IniFiles

Mit Config::IniFiles gibt es zwei Wege, an die Daten zu kommen, entweder nimmst Du die Methoden über das ini-Object oder bindest Die Datei an einen Hash (tie):

  
tie my %h, 'Config::IniFiles', -file => '/path/ini';  
# anm.: -file => $dateihandler ist ebenso möglich  
# oder so, einfach mal zum Testen einer ini unterhalb __DATA__ im Script:  
use strict;  
use warnings;  
use Config::IniFiles;  
use Data::Dumper;  
  
tie my %h, 'Config::IniFiles', -file => *DATA;  
print Dumper \%h;  
__DATA__  
[object-id]  
attribut = value  
  
[oid]  
att = val  
  

Data::Dumper ist ein weiteres wichtiges Werkzeug zum optischen Ausgeben von Variablen bzw. Datenstrukturen. Wie schon gesagt, Hashes werden in Perl sehr oft verwendet, vielmehr auch Hash-Referenzen (Objekte).

Weiter interessante Möglichkeiten ergeben sich aus der abstrakten Trennung von Datenhaltung und Anwendung (Perlscript). D.h., zwischen der Anwendung und der Datenquelle liegt eine austauschbare Klasse, der Data Abstraction Layer (DAL).

In der Anwendung selbst, wird nur noch mit Datenstrukturen (Hashes) oder Methoden gearbeitet, SQL-Statements oder Operationen mit Dateihandler sind nicht in der Anwendung notiert, sondern im DAL. Auf diese Art und Weise ergibt sich ein übersichtlicher modularer Code...

Schönen Sonntag,
Hotti