В первом выстреле я мог придумать что-то вроде этого (но это - псевдо код и предположение, что Вы не можете использовать.NET встроенный libaries). Мог бы потребовать небольшого количества тонкой настройки и пересмотра прежнего мнения, но должен быть достаточно хорошим для преимущества, возможно?
int findString(String var, String[] stringArray, int currentIndex, int stringMaxIndex)
{
if currentIndex > stringMaxIndex
return (-stringMaxIndex-1);
else if var==arr[currentIndex] //or use any string comparison op or function
return 0;
else
return findString(var, stringArray, currentIndex++, stringMaxIndex) + 1 ;
}
//calling code
int index = findString(var, arr, 0, getMaxIndex(arr));
if index == -1 printOnScreen("Not found");
else printOnScreen("Found on index: " + index);
Попробуйте
print "$_\n" for keys %{ $configuration->[0] };
Вы должны принудительно преобразовать элемент массива « $ configuration -> [0]
» в хэш-ссылку с помощью «% {...}
»
Итак, чтобы перебрать их:
for my $key ( keys %{ $configuration->[0] } ){
my $value = $configuration->[0]{$key};
print "$key => $value\n";
}
YAML :: Tiny
создает довольно сложную структуру данных:
ссылка на массив полный ссылок на хеши полный ссылок на массивы полный ссылок на хеши ....
когда $ a
- ссылка на массив,
вы получаете доступ ко всему массиву как @ $ a
и элементы как $$ a [0], $$ a [1],
...
или как $ a -> [0], $ a -> [1]
, когда $ b
является ссылкой на хэш,
вы получаете доступ ко всему хешу как % $ b
и элементы как $ $ b {'somekey'}, $$ b {'somekey'},
....
или как $ b -> {'somekey'}, $ b -> {'somekey'}
, когда $ configuration
является ссылкой на массив, полный ссылок на хэши
вы получаете доступ ко всему массиву как @ $ configuration
,
первый элемент как $ конфигурация -> [0]
. Вы можете просто скопировать это в другую переменную
$firstconfig = $configuration->[0]
, а затем получить доступ ко всему хешу как
%$firstconfig
, но если вы хотите сделать это за один раз, вам придется написать довольно хитрый
%{ $configuration->[0] }
Я думаю, что это одна из вещей, которые был удален для Perl 6.