2016-10-31 8 views
0

各行の最後の要素を取得する必要があります。私はあなたが.で区切られた最後の値を意味する最後の要素によって想定しperl ..perlで各行の最後の要素を取得するにはどうすればよいですか?

1.25.56.524.2 
2.56.25.254.3 
2.54.28.264.2 
+7

Welcome to StackO流血!あなたはあなたがまだ試したことを投稿できますか? [最小限の完全で検証可能な例]を提供してください(http://stackoverflow.com/help/mcve)。 – FelixSFD

答えて

0

を使用しています。このコードを見て:

use strict; 
my @last_values;      # UPDATE: initialize array 
for my $line (<DATA>) {     # read line by line 
    chomp $line;      # remove newline at the end 
    my @fields = split '\.', $line;  # split to fields 
    my $last = pop @fields;    # get last field 
    print $last."\n"; 
    push @last_values, $last;   # UPDATE: store last field in array 
} 

__DATA__ 
1.25.56.524.2 
2.56.25.254.3 
2.54.28.264.2 

出力:

2 
3 
2 
0

一つの可能​​性は次のようになります。

use strict; 
use warnings; 

my @Result;     # Array holding the results 

while (<DATA>)    # whatever you use to provide the lines... 
{ 
    chomp;     # good practice, usually necessary for STDIN 
    my @Tokens = split(/\./); # assuming that "." is the separator 
    push(@Result , $Tokens[-1]); 
} 

__DATA__ 
1.25.56.524.2 
2.56.25.254.3 
2.54.28.264.2 
4

だけsplitドットの各行は、最後の要素は、インデックスを持つ-1 :

print +(split /\./)[-1] while <>; 
関連する問題