Хорошо, поэтому я использую perl для чтения файла, который содержит некоторые общие данные конфигурации.Эти данные организованы в заголовки в зависимости от их значения.Ниже приведен пример:
[vars]
# This is how we define a variable!
$var = 10;
$str = "Hello thar!";
# This section contains flags which can be used to modify module behavior
# All modules read this file and if they understand any of the flags, use them
[flags]
Verbose = true; # Notice the errant whitespace!
[path]
WinPath = default; # Keyword which loads the standard PATH as defined by the operating system. Append with additonal values.
LinuxPath = default;
Цель: используя первую строку в качестве примера «$ var = 10;», я хотел бы использовать функцию split в perl для создания массива, содержащего символы »$ var "и" 10 "в качестве элементов.Используя в качестве примера другую строку:
Verbose = true;
# Should become [Verbose, true] aka no whitespace is present
Это необходимо, потому что я буду выводить эти значения в новый файл (который будет читать другой фрагмент кода C ++) для создания экземпляров объектов словаря.Просто чтобы дать вам небольшой вкус того, как это может выглядеть (просто придумывая, как я иду вперед):
define new dictionary
name: [flags]
# Start defining keys => values
new key name: Verbose
new value val: 10
# End dictionary
О, и вот код, который у меня есть в настоящее время вместе с тем, что он делает (неправильно):
sub makeref($)
{
my @line = (split (/=/)); # Produces ["Verbose", " true"];
}
Чтобы ответить на один вопрос, почему я не использую Config :: Simple, я изначально не знал, как будет выглядеть мой файл конфигурации, только то, что я хотел.Придумывая все это - по крайней мере то, что мне показалось разумным - и используя perl для анализа файла.
Проблема в том, что у меня есть некоторый код C ++, который будет загружать информацию в конфигурационном файле, но поскольку синтаксический анализ в C или C ++ :(, я решил использовать perl. Это также хорошее упражнение для меня, так как яЯ новичок в этом языке. Так вот в чем дело, этот Perl-код на самом деле не является частью моего приложения, он просто облегчает чтение информации для кода C ++. И он более читабелен (как файл конфигурации, так исгенерированный файл). Спасибо за отзыв, он действительно помог.