Вот фрагмент вашего кода, который создает XML-файл.
open (MYFILE, '>data.xml');
print MYFILE qq{<?xml version="1.0" encoding="UTF-8"?>};
print MYFILE '<x1=$namex1, x2=$namex2, y1=$namey1, y2=$namey2>';
print MYFILE '<slope is $slope1, y-intercept is $inter>';
close (MYFILE);
Есть несколько вещей, которые я бы изменил, но в основном это работает.Вы открываете файл, записываете данные в файл и затем успешно закрываете файл.
Вот что вы в итоге получите data.xml
(я заменил все ваши переменные на XXX
, как и японятия не имею, какие значения они будут иметь):
<?xml version="1.0" encoding="UTF-8"?>
<x1=XXX, x2=XXX, y1=XXX, y2=XXX>
<slope is XXX, y-intercept is XXX>
Проблема в том, что это недопустимый XML.Для начала вам нужен корневой элемент, который охватывает все другие элементы в вашем документе.Примерно так, возможно:
<?xml version="1.0" encoding="UTF-8"?>
<data>
<x1=XXX, x2=XXX, y1=XXX, y2=XXX>
<slope is XXX, y-intercept is XXX>
</data>
Видите, как я добавил <data>
... </data>
вокруг всех ваших других элементов?
А затем два элементачто вы добавили, просто не похожи на действительный XML.Допустимый элемент XML имеет имя и необязательные атрибуты.Ваш первый элемент близок.У него есть атрибуты, но нет имени.Возможно, это должно выглядеть так:
<coords x1=XXX, x2=XXX, y1=XXX, y2=XXX>
(Но я изобрел имя, coords
, только вы можете знать, как оно должно называться.)
О, иэлемент XML должен быть закрыт.Самый простой способ - добавить «самозакрывающийся» слеш к концу элемента.
<coords x1=XXX, x2=XXX, y1=XXX, y2=XXX />
В основном (и я извиняюсь, если это звучит резко), чтобы создать файл XML,вам нужно знать, как выглядит XML-файл.И это действительно не похоже на тебя.Возможно, вам нужно почитать тему.Или, возможно, вам нужно получить больше информации от человека, который попросил вас создать файл XML.Попробуйте спросить у них спецификацию для формата XML.
Действительно, у вас все в порядке с Perl.Это не-Perl вещи, с которыми вам нужна помощь.И мы не те люди, которые помогут вам там.