Zes*_*Rex -1 arrays variables perl
所以,我正在尝试再次,现在我被卡住了.
while (<KOERGEBNIS>){
my $counter = 0;
my $curline = $_;
for (my $run = 0; $run < $arrayvalue; $run++){
if ($curline =~ m/@tidgef[$counter]/){
my $row = substr($curline, 0, 140);
push @array$counter, $row;
print "Row $. was saved in ID: @filtered[$counter]\n";
}
$counter++;
}
}
Run Code Online (Sandbox Code Playgroud)
背景是我想在相同的数组中保存以相同的8个字符开头的所有行,这样我就可以计算行数并开始使用这些数组.我现在唯一能想到的就是切换和案例,但我想在将这些代码扔进垃圾之前我会先问.
示例:如果.txt中有一行像这样:
50004000_xxxxxxxxxxxxxx31
50004000_xxxxxxxxxxxxxx33
60004001_xxxxxxxxxxxxxx11
60004001_xxxxxxxxxxxxxx45
Run Code Online (Sandbox Code Playgroud)
我拿了每行的前8个字符并使用uniq过滤重复项并将它们保存在@tidgef数组中,现在我想将@ 1中的Line1和Line2保存在@ array50004000中,甚至更好@ line50004000,将Line4和Line4保存到@ array2或@ array60004001 .
我希望我能很好地解释我的问题!感谢你们
你濒临危险地接近一个名为"符号引用"的想法(也称为"使用变量来获取变量的名称").这是一个非常糟糕的主意,对所有 种类的原因.
以此为借口来了解Perl中的复杂数据结构是一个更好的主意.你想要对这些数据做什么并不是很清楚,但是这个例子应该让你开始:
#!/usr/bin/perl
use strict;
use warnings;
use 5.010;
use Data::Dumper;
my %lines;
while (<DATA>) {
chomp;
my $key = substr($_, 0, 8);
push @{$lines{$key}}, $_;
}
say Dumper \%lines;
__DATA__
50004000_xxxxxxxxxxxxxx31
50004000_xxxxxxxxxxxxxx33
60004001_xxxxxxxxxxxxxx11
60004001_xxxxxxxxxxxxxx45
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
85 次 |
| 最近记录: |