#!/usr/bin/env perl -l
use strict;
use warnings;
my @acc = qw{AX1 AX2 AX3};
my @sec = qw{PB6 PB7 PB8};
my @third = qw{XC2 XC8 XC1};
my %output_for_option = (
1 => sub { print "@{get_rand_acc()}" },
2 => sub {
my ($acc, $sec) = (get_rand_acc(), get_rand_sec());
print "@{[ map { $acc->[$_] . $sec->[$_] } 0, 1 ]}";
},
3 => sub {
my ($acc, $third) = (get_rand_acc(), get_rand_third());
print "@{[ map { $acc->[$_] . $third->[$_] } 0, 1 ]}";
},
4 => sub {
my ($acc, $sec, $third)
= (get_rand_acc(), get_rand_sec(), get_rand_third());
print "@{[ map { $acc->[$_] . $sec->[$_] . $third->[$_] } 0, 1 ]}";
},
);
while (<>) {
chomp;
last unless exists $output_for_option{$_};
$output_for_option{$_}->();
}
sub get_rand_acc { get_rand_from_array(\@acc) }
sub get_rand_sec { get_rand_from_array(\@sec) }
sub get_rand_third { get_rand_from_array(\@third) }
sub get_rand_from_array {
my %h = map { $_ => undef } @{+shift};
return [ (keys %h)[0, 1] ];
}
####
$ pm_1172223_rand_array_concat.pl
1
AX3 AX1
2
AX2PB7 AX3PB6
3
AX3XC2 AX1XC8
4
AX1PB8XC2 AX3PB6XC8
5
$
####
$ pm_1172223_rand_array_concat.pl
1
AX1 AX3
2
AX1PB7 AX2PB8
3
AX1XC1 AX3XC8
4
AX3PB6XC1 AX2PB8XC2
5
$