[linux-support] Perl

Kissling Lucas lobo25 at gmx.net
Thu Oct 2 09:56:42 CEST 2003


Hallo

Habe hier ein kleines Perl-script am Testen und komme nicht mehr 
weiter.
Das Script liest eine CSV Datei ein und schreibt Sie um ins LDIF 
Format.
Nun habe ich im CSV File einige Felder ohne Inhalt (z.B. keine 
Faxnummer). Das Script schreibt nun diese Variable im LDIF Format 
ebenfalls, jedoch ohne Wert. Dieses leere Feld kann bei der 
Weiterverarbeitung nicht verwendet werden. Es sollte diese Feld gar 
nicht schreiben.
Wie lässt sich nun prüfen ob diese Variable leer ist, bezieungsweise 
nur den Wert "" hat. Wenn der Wert leer ist sollte die print 
Anweisung nicht durchgeführt werden und die nächste variable 
verarbeitet werden. Ich glaube man muss eine eine schleife 
konstruieren und den Wert der Variable prüfen. Wie ihr sicher merkt 
bin ich in Sachen Perl nicht so bewandert. Habe schon einige Quellen 
durchforstet jedoch nicht die richtigen infos gefunden.
Ich hoffe jemand kann mir auf die sprünge helfen.

Gruss Luc

Unten folgt nun das Script.

#!/usr/bin/perl
use Text::ParseWords;
$objectclass0 = 'person';
$objectclass1 = 'inetOrgPerson';
$objectclass2 = 'top';

$suffix = 'ou=Personen, o=BCO, o=Meine Org,dc=COM';
while ($line = <STDIN>) {
  @fields = &quotewords(',',0,$line);

  # Set variable values based on the array values.
   
  $cn         = $fields[2];
  $fname      = $fields[1];
  $lname      = $fields[2];
  $title      = $fields[0];
  $o          = $fields[5];
  $ou         = $fields[4];
  $mail       = $fields[18];
  $phone      = $fields[16];
  $fax        = $fields[15];
  $plzpriv    = $fields[11];
  $streetpriv = $fields[6];
  $ortpriv    = $fields[9];
  $landpriv   = $fields[12];
  $mobil      = $fields[17];
  $birtday    = $fields[19];
  $telgesch   = $fields[14];


  # Output.
  print "dn: cn=$fname $lname,$suffix\n";
  print "objectclass: $objectclass0\n";
  print "objectclass: $objectclass2\n";
  print "objectclass: $objectclass1\n";
  print "cn: $fname $lname\n";
  print "gn: $fname\n";
  print "sn: $lname\n";
  print "displayName: $lname $fname\n";
  print "title: $title\n";
  print "postalAddress: $streetpriv \$ $plzpriv \$ $ortpriv\n";
  print "postalCode: $plzpriv\n";
  print "street: $streetpriv\n";
  print "l: $ortpriv\n";
  print "ou: BCO\n";
  print "mail: $mail\n";
  print "TelephoneNumber: $phone\n";
  print "facsimileTelephoneNumber: $fax\n";
  print "mobileTelephoneNumber: $mobil\n";
  print "\n";
}

exit;

 



-- 
«------------------------------------------------------»
   01101100 01101111 01100010 01101111 00110010 00110101 01000000
   01100111 01101101 01111000 00101110 01101110 01100101 01110100
«------------------------------------------------------»




More information about the Linux-support mailing list