HI, Anirban.
Regexp and hash of arrays can help you.
my @a =
('1900-0','1900-1','NULL','NULL','1900-2','1900-4','1902-5','1902-6','1902-7','1902-8');
my %result;
foreach (@a) {
next if $_ eq 'NULL';
my ($earfcn, $pcid) = /^(\d+)-(.+)$/;
push @{$result{$earfcn}}, $pcid;
}
say "EARFCN=$_,PCID=" . join ("&", @{$result{$_}}) . ";" for sort keys
%result;
Outcome is exatly what you want
EARFCN=1900,PCID=0&1&2&4;
EARFCN=1902,PCID=5&6&7&8;
ср, 6 мая 2015 г. в 10:25, <[email protected]>:
>
> beginners Digest 6 May 2015 07:20:38 -0000 Issue 4811
>
> Topics (messages 125337 through 125337):
>
> Perl array question
> 125337 by: Anirban Adhikary
>
> Administrivia:
>
> To subscribe to the digest, e-mail:
> <[email protected]>
>
> To unsubscribe from the digest, e-mail:
> <[email protected]>
>
> To post to the list, e-mail:
> <[email protected]>
>
>
> ----------------------------------------------------------------------
>
>
>
> ---------- Forwarded message ----------
> From: Anirban Adhikary <[email protected]>
> To: beginners <[email protected]>
> Cc:
> Date: Wed, 6 May 2015 12:49:53 +0530
> Subject: Perl array question
> Hi List
> I have the following array ---
> ('1900-0','1900-1','NULL','NULL','1900-2','1900-4','1902-5','1902-6','1902-7','1902-8');
> There are two part for each element separated by a dash.
> first one known as earfcn and second one is pcid .
> The requirement is For the same “earfcn”, concatenate the “pcid” values
> using "&" separator between values.
> so the output will be like this
> EARFCN=1900,PCID=0&1&2&4;
> EARFCN=1902,PCID=5&6&7&8;
>
> I am not able to generate any idea how to adress this isuue. Please give
> me some starting point.
>
> Best Regards
> Anirban.
>
>