, o zaman içsel perl bölünmüş işlevini kullanarak ayrı satırlara içine ayırabilirsiniz: @lines Çizgilerinizin bir dizidir
my @lines = split("\n", $info);
. "\ N", bir satırsonunun normal ifadesidir. Her hat üzerinden döngü aşağıdaki gibi: Bu durumda, boşluk her satırı bölmek için
foreach (@lines) {
$line = $_;
# do something with $line....
}
(\ ın bir boşluk karakteri normal ifade \ s +, anlamına gelir ve + 1 ya da daha fazla kez):
@fields = split("\s+", $line);
ve daha sonra onun dizi indeksi üzerinden doğrudan her alanı erişebilirsiniz: $ alan [0], $ alan [1] vb
ya, bunu yapabilirsiniz:
($var1, $var2, $var3, $var4) = split("\s+", $line);
, her satırdaki alanları ayrı ayrı adlandırılmış değişkenlere koyar.
Şimdi - Eğer tür istiyorsanız üçüncü sütunda karakteri ederek hatları, bunu yapabilirdi:
my @lines = split("\n", $info);
my @arr =(); # declare new array
foreach (@lines) {
my @fields = split("\s+", $_);
push(@arr, \@fields) # add @fields REFERENCE to @arr
}
Artık bir "Dizilerin dizisi" var.
@sorted = sort { $a->[2] <=> $b->[2] } @arr;
3 elemanın @fields arasında (endeks 2) tarafından @arr sıralamak hangi şöyledir: Bu kolayca sıralanabilir.
kendi değişkenlere aynı üçüncü sütun ile satırları koymak için Düzen 2 Bunu yapmak: Artık
my %hash =(); # declare new hash
foreach $line (@arr) { # loop through lines
my @fields = @$line; # deference the field array
my $el = $fields[2]; # get our key - the character in the third column
my $val = "";
if (exists $hash { $el }) { # check if key already in hash
my $val = $hash{ $el }; # get the current value for key
$val = $val . "\n" . $line; # append new line to hash value
} else {
$val = $line;
}
$hash{ $el } = $val; # put the new value (back) into the hash
}
sahip olduğunuz her tuş varlık için değer ile, üçüncü sütunda karakterleri ile anahtarlı bir karma Bu anahtarı içeren satırlar. Daha sonra karma yoldan geçebilir ve çıktı alabilir veya karma değerler kullanabilirsiniz.
Bu veriler/satırlar nerede? Dahili aracınız bunları tek bir değişkene mi koyuyor? Yoksa bu metin verileri okumak için gereken bir dosyada mı? –
Araç bunları tek bir değişkene yerleştirir. – scraft3613
Perl newbies var! 1 – nes1983