2014-03-27 49 views
0

我有去像一個數組:如何在perl中分隔數組?

A B C D E F G H A1 B1 C1 D1 E1 F1 
G1 H1 

我想知道,這樣它打印一個新行,當它擊中A1我如何能分裂它。 請注意,這實際上不是它的外觀,而是一個複雜的表格,它混合了大量的數字和字母(如果它以任何方式)。

+0

你的意思是你有不同的值的列表A,B,C,d或者你有一個字符串,它是 「ABCDEF」 – alexmac

+0

請出示碼這例證了創建數組。你如何認識何時分裂一條線?你需要尋找'$ a [$ i] eq'A1'',還是在8個元素之後,或者是什麼? –

+0

a,b,c,d等等不同的值...等等 – user3335429

回答

2

假設您在一行$line中包含所有字母和數字。所以:

my $line = 'A B C D E F G H A1 B1 C1 D1 E1 F1 A2 B2'; 
my ($curr_n, $last_n) = (0, 0); 
foreach my $el (split(/ /, $line)) { 
    $curr_n = $el =~ /\w+(\d+)/ ? $1 : 0; 
    if ($curr_n != $last_n) { 
     $last_n = $curr_n; 
     print "\n"; 
    } 
    print $el; 
} 

它提供了遵循輸出:

ABCDEFGH 
A1B1C1D1E1F1 
A2B2