Произвольный выбор из массива в PERL / AGI - PullRequest
0 голосов
/ 03 апреля 2019

У меня есть сценарий PERL (не уверен), который генерирует случайное число (идентификатор звонящего) для Asterisk / GoAutodial CRM.

Сгенерированное число начинается с "+4124 *******" и случайного числа для остальной части номера.

Как изменить его на предопределенный массив, например:

$numbers = array (
    '+41240000000',
    '+41240000003',
    '+41240000007'
);

Вот код changernum.agi:

#!/usr/bin/perl -w
$|=1;

use Net::Ping;
use Asterisk::AGI;


$AGI = new Asterisk::AGI;

my %input = $AGI->ReadParse();

my ($number, $idv) = @ARGV;
$number="+4124".int(rand(10)).int(rand(10)).int(rand(10)).int(rand(10)).int(rand(10)).int(rand(10)).int(rand(10));


***I think I need something here***

$AGI->exec("SET numafficher=$number");
$AGI->verbose( "******* / **** / > Numero: $number < ======== ");

1 Ответ

1 голос
/ 03 апреля 2019

rand EXPR генерирует случайное число от 0 до EXPR. Вы можете использовать это поведение, чтобы получить случайный элемент массива:

my @predefined = (
    '+41240000000',
    '+41240000003',
    '+41240000007'
);
my $number = $predefined[rand(@predefined)];
...