1

こんにちは、次のような配列があります

@array = ( "city: chicago", "city: Newyork", "city: london", "country: india", "country: england", "country: USA")

配列を次のようにしたい:

@array = ("city:", "chichago","Newyork","london","country:","india","england","USA")

配列を次の形式のようにフォーマットする方法を教えてください。

4

2 に答える 2

3

配列のすべての要素を空白で分割し、文字列city:またはcountry:文字列が既に表示されている場合はそれらをスキップし、そうでない場合はそれらを都市名または国名とともに新しい要素としてマップします。

my @array = ("city: chicago", "city: Newyork", "city: london", "country: india", "country: england", "country: USA");
my %seenp;
@array = map {
  my ($k,$v) = split /\s+/, $_, 2;
  $seenp{$k}++ ? $v : ($k,$v);
}
@array;
于 2013-07-17T05:56:58.033 に答える