将Perl结构转换为数组
一个简单的问题,但我在任何地方都找不到答案。 我有一个由学生组成的文本文件,比如说,看起来像这样:将Perl结构转换为数组,perl,file,structure,Perl,File,Structure,一个简单的问题,但我在任何地方都找不到答案。 我有一个由学生组成的文本文件,比如说,看起来像这样: 1 bob smedley 4 2 rob nielsen 7 3 sol connie 9 4 jon sidney 18 struct Student => {ID => '$', name => '$', surname => '$', points => '$',}; id = 1; name = bob; surname = smedley; poin
1 bob smedley 4
2 rob nielsen 7
3 sol connie 9
4 jon sidney 18
struct Student => {ID => '$', name => '$', surname => '$', points => '$',};
id = 1;
name = bob;
surname = smedley;
points = 4;
然后我有一个结构学生,看起来像这样:
1 bob smedley 4
2 rob nielsen 7
3 sol connie 9
4 jon sidney 18
struct Student => {ID => '$', name => '$', surname => '$', points => '$',};
id = 1;
name = bob;
surname = smedley;
points = 4;
我使用以下命令将此文本文件加载到数组中:@stud=代码>
现在我想把我的@stud
中的每一行加载到一个Student结构数组中。让我们称之为my@students代码>以便
例如,我的第一个结构如下所示:
1 bob smedley 4
2 rob nielsen 7
3 sol connie 9
4 jon sidney 18
struct Student => {ID => '$', name => '$', surname => '$', points => '$',};
id = 1;
name = bob;
surname = smedley;
points = 4;
并对@stud
中的每一行执行此操作。
或者,我可以直接从文件加载这些结构,但我认为使用temp array@stud可能更容易 您不需要将文件拖入数组。您可以逐行处理它:
#!/usr/bin/perl
use warnings;
use strict;
use Class::Struct;
struct Student => {ID => '$', name => '$', surname => '$', points => '$',};
my @students;
while (<>) {
my ($id, $name, $surname, $points) = split;
my $s = Student->new;
$s->ID($id);
$s->name($name);
$s->surname($surname);
$s->points($points);
push @students, $s;
}
#/usr/bin/perl
使用警告;
严格使用;
使用Class::Struct;
结构Student=>{ID=>'$',name=>'$',姓氏=>'$',points=>'$',};
我的学生;
而(){
我的($id,$name,$姓氏,$points)=拆分;
我的$s=学生->新建;
$s->ID($ID);
$s->name($name);
$s->姓氏($姓氏);
$s->points($points);
推送@students$s;
}
您不需要将文件拖入数组。您可以逐行处理它:
#!/usr/bin/perl
use warnings;
use strict;
use Class::Struct;
struct Student => {ID => '$', name => '$', surname => '$', points => '$',};
my @students;
while (<>) {
my ($id, $name, $surname, $points) = split;
my $s = Student->new;
$s->ID($id);
$s->name($name);
$s->surname($surname);
$s->points($points);
push @students, $s;
}
#/usr/bin/perl
使用警告;
严格使用;
使用Class::Struct;
结构Student=>{ID=>'$',name=>'$',姓氏=>'$',points=>'$',};
我的学生;
而(){
我的($id,$name,$姓氏,$points)=拆分;
我的$s=学生->新建;
$s->ID($ID);
$s->name($name);
$s->姓氏($姓氏);
$s->points($points);
推送@students$s;
}
@Whizzil:Remove the prototype.@Whizzil:Read and.@Whizzil:Remove the prototype.@Whizzil:Read and。