/
niceSOFT
/
engine
Обзор
Документация
Войти
/
niceSOFT
/
engine
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
Аналитика
Безопасность
master
test/Utils.pm
43 строки
816 B
Eugene Mironenko
Implement provider interface to support GOST TLS 1.3
20 авг 2025, 19:15
20 авг 2025, 19:15
a3b8c79
Код
Авторство
О чём код?
package Utils; use strict; use warnings; # # Implemented using ChatGPT sub cartesian_product_iterator { my @arrays = @_; my $empty_result = sub {return}; unless (@arrays) { return $empty_result; } for my $a (@arrays) { unless (@$a) { return $empty_result; } } my @idx = (0) x @arrays; my $done = 0; return sub { return if $done; my @current = map {$arrays[$_]->[$idx[$_]]} 0 .. $#arrays; # increment indices for (my $i = $#idx ; $i >= 0 ; $i--) { $idx[$i]++; if ($idx[$i] < @{$arrays[$i]}) { last; } else { $idx[$i] = 0; if ($i == 0) {$done = 1} } } return \@current; }; } 1;