Schrift
Wiki:Tipp zum Debugging: use Data::Dumper; local $Data::Dumper::Useqq = 1; print Dumper \@var;
[thread]7709[/thread]

Datei in arrayrefs



<< >> 3 Einträge, 1 Seite
Froschpopo
 2006-02-14 01:55
#62940 #62940
User since
2003-08-15
2653 Artikel
BenutzerIn
[default_avatar]
ist das ne saubere Lösung?

Textdatei in <USERS>
Code: (dl )
1
2
3
4
user1|alter|geschlecht
user2|alter|geschlecht
user3|alter|geschlecht
user4|alter|geschlecht

nun möchte ich jede einzelne zeile als "datensatz" behandeln, aufsplitten und je zeile eine arrayreferenz vergeben.Sinn ist, das ganze später z.B. nach alter sortieren zu können.
So soll es aussehen:
Code: (dl )
1
2
3
4
5
@array = (
["user1", "alter", "geschlecht"],
["user2", "alter", "geschlecht"],
["user3", "alter", "geschlecht"],
["user4", "alter", "geschlecht"]


Jetzt wollte ich das so machen:
Code: (dl )
1
2
3
$file = <USERS>;

@users = ([split(/\||\n/,$file)]);

kann man das so verwenden? Ich finde, das sieht sehr unschön aus.

Info: In der Textdatei befindet sich der Zeilenumbruch nur am Zeilenende. Also eine typische Primatendatenbank.\n\n

<!--EDIT|Froschpopo|1139875021-->
murphy
 2006-02-14 02:33
#62941 #62941
User since
2004-07-19
1776 Artikel
HausmeisterIn
[Homepage]
user image
Wieso liest du eigentlich nur eine Zeile der Daten ein und warum splittest du nach "\n"? Wenn ich richtig verstanden habe, welches Resultat du haben willst, dann würde ich in etwa das folgende Programm vorschlagen:
Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
use strict;
use warnings;

use Data::Dumper;

my @users;
while (<DATA>) {        
 chomp;
 push @users, [ split /\|/ ];
}

print Dumper \@users;

_ _DATA_ _
user1|alter|geschlecht
user2|alter|geschlecht
user3|alter|geschlecht
user4|alter|geschlecht
\n\n

<!--EDIT|murphy|1139877361-->
When C++ is your hammer, every problem looks like your thumb.
renee
 2006-02-14 02:36
#62942 #62942
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
das wird nur funktionieren, wenn $/ auf undef ist...

mach's doch lieber:
Code: (dl )
1
2
3
4
5
my @users;
while(<USERS>){
chomp;
push(@users,[split(/\|/,$_)]);
}


Warum sieht das unschön aus??

Edit: Mist, zu langsam ;)\n\n

<!--EDIT|renee|1139878244-->
OTRS-Erweiterungen (http://feature-addons.de/)
Frankfurt Perlmongers (http://frankfurt.pm/)
--

Unterlagen OTRS-Workshop 2012: http://otrs.perl-services.de/workshop.html
Perl-Entwicklung: http://perl-services.de/
<< >> 3 Einträge, 1 Seite



View all threads created 2006-02-14 01:55.