「5 3*3 4*1 6*3 14*4 3*2 2*3 4」という文字列があります。
この文字列を要素を持つ配列にしたい:
@array = ( "5", "3" x 3, "1" x 4, "3" x 6, "4" x 14, "2" x 3, "3" x 2, "4" );
これよりも良い(短い)方法があると思います:
$string = "5 3*3 4*1 6*3 14*4 3*2 2*3 4";
@array = split (/\s+/,$string);
foreach(@array) {
if ( /\*/ ) {
s/^(\d+)\*(\d+)/"$2" x $1/g;
} else {
print "$_\n";
$_ = '"'. $_ .'"';
}
}
編集:このコードは、元の質問で上記のようにすべきだと私が言ったことを実際に行います。しかし、それは実際には私が望むものではありません。最終的な配列は次のようになります。
@array = (5, 3, 3, 3, ...)