Split - Zeichen und sonstiges Gelumpe zum Einlesen

M

meierle

Mahlzeit,

ich schnupper grade son bissl an Perl rum und hätte da mal ne Frage. Ist sichrlich nix weltbewegendes.

Wenn ich vonner Datei namens Daten1.txt einlese und die verschiedenen Zeilen in ein Array legen will wie geht das?

Wie ist denn das Split Zeichen für einen Zeilenvorschub?
z.B zum splitten an einem Punkt split ('.', $a); soweit ist klar aber ein Vorschub??? :>

Ich starte dann das Programm mit

perl programm.pl daten1.txt

In welcher Variablen steht denn dann zuerst der Inhalt von daten1.txt?

Merci für alle Tips und Vorschläge im voraus.

Gruß
das Meierle
 
hi!

Zu ersten frage:
Du weisst du bestimmt wie man einen Zeilenumbruch in einer print anweisung erstellt oder?
Mit "\n"
z.b.:
PHP:
print "Hallo\n"


Also lassen sich Zeilnumbrüche z.b. so in ein Arry zerlegen:
PHP:
while(my $zeile = <DATEI>)
{
 #chomp($zeile); Darf natürlich nicht verwendet werden
 @personal = (split(/"\n"/, $zeile)); #ohne ""
}


Die zweite Frage kapier ich net so ganz %).......
 
Zuletzt bearbeitet:
Also folgendes

Erstmal vielmals Merci. \n hmm, hätte ich auch drauf komen können.

die 2. Frage war wenn ich auf DOS-Ebene das Programm starte und diesem Programm eine Datei übergebn möchte mache ich das z.b mit

Perl programm.pl datei.txt

auf Dos Ebene.

Hab jetzt aber schon die Lösung gefunden. Entweder man macht das so wie du in deinem Beispiel indem man im Programm von der Datei liest, oder man macht das mit $input = <>, dann wird $input der
Inhalt der Datei die man zusätzlich angibt zugewiesen.

Allerdings muss ich gestehen, dass ich nicht ganz kapiert habe was du geschrieben hast. Unschlüssige Stellen sind rot markiert:

while(my $zeile = <DATEI> )
{
# chomp($zeile); Darf natürlich nicht verwendet werden
@personal = (split(/"\n"/, $zeile)); #ohne ""
}

Was meinst du mit ohne "" und darf natürlich nicht verwendet werden?

Kann natürlich sein, dass mir die Syntax deshalb so spanisch vorkommt, weil es PHP ist und nicht Perl, oder gibts da keine Unterschiede?

Anyway nochmals merci

Gruß
das Meierle
 
Hi!
Ok erkläre ich ihn genauer.
Es ist Perl da es hier aber nur die PHP-Formatierung gibt musste ich die nehmen. Las dich davon nicht ablenken :)

Genauere Erklärung:

1. while(my $zeile = <DATEI> )
2. {
3. # chomp($zeile); Darf natürlich nicht verwendet werden
4. @personal = (split(/"\n"/, $zeile)); #ohne ""
}


1-2. Die While-Schleife liest immer eine Zeiler der Datei ein und speicher diese in der Variable $zeile. Das my vor variablen beteutet das diese Variable nur innerhalb einer Funktion gültig ist. Kanns sie aber auch weg lassen.

3. chomp schneidet das \n zeichen am ende der Variable ab. Aber wenn wir das benutzen würde, würde sie split funktion das \n nicht mehr findet und nicht splitten. Deswegen hab ich es weg mit # in einen Kommantar gewandelt.

4. #ohne "" meinet ich mit das du die "" bei /"\n"/ weg lassen sollst weil ich die hier machen musst damit das \ zeichen angezeigt wird.

Hab das alles jetzt was bildlich erklärt hoffe du kommst damit weiter.
 
Ahhaja

Hi Interritor,

alles klar, habs gepeilt. Merci für den Support.

Du hast übrigens ne echt fette Seite, das mit dem Gedicht ist auch echt toll.

Greetings
vom meierle
 
Zurück