Calocybe: misteriöses Leerzeichen am Zeilenanfang

Beitrag lesen

Moin moin!

open(LISTE,">$mitglieder_file");
print LISTE "@mitglieder2\n";

^^^^^^^^^^^^^^^^
Du laesst eine Liste innerhalb von Double quotes interpolieren, d.h. die einzelnen Elemente einzeln hinschreiben, jeweils getrennt von dem Zeichen, das in der vordefinierten Variable $" steht. Das ist normalerweise ein Leerzeichen. Damit ist die Zeile also aequivalent zu
print LISTE "$mitglieder2[0] $mitglieder2[1] $mitglieder2[2] ... \n";
Da Du oben beim Einlesen der Liste nicht chomp() verwendet hast, enthaelt jedes Element selbst an letzter Position noch einen Zeilenumbruch, der dann also direkt vor dem automatisch eingefuegten Leerzeichen landet. So beginnt dann also jede Zeile mit einem Leerzeichen.

Siehe perldoc perlvar zur Erklaerung der Variable.

Loesung: Entweder Du setzt vorher  $" = '' , oder Du gibst Deine Liste einfach vernuenftig aus, naemlich mit
  print LISTE @mitglieder2;

HTH && So long

--
Programming today is a race between software engineers striving to build bigger and better idiot-proof programs, and the Universe trying to produce bigger and better idiots. So far, the Universe is winning.
    -- Rich Cook