1

以下のスクリプトは、すべての「E」でシーケンスを中断し、その後、「E」が各フラグメントに追加されます。しかし、最後の要素に「E」が付いていないのはなぜですか?

use strict;
use warnings;

my $s = 'ABCDEABCDEABCDEABCDEABCDE';
my @a = split /E(?!P)/, $s;

my $result = join "E,", @a; 
my @final  = split /,/, $result;
print "@final\n";
4

2 に答える 2

2

Aは、連続する要素間のjoin最初の引数を結合します。最後の「E」を追加する場合は、次のようにするだけです。

$s = 'ABCDEABCDEABCDEABCDEABCDE';
@a = split(/E(?!P)/, $s);
print join ("E ", @a), "E\n"; 
于 2012-10-10T11:30:37.543 に答える
0

のドキュメントを参照してくださいsplit

デフォルトでは、空の先頭フィールドは保持され、空の末尾フィールドは削除されます。

于 2012-10-10T11:23:04.893 に答える