Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Perl: Системное программирование > Как написать модуль?


Автор: s_a_s_h_a 30.8.2004, 12:54
Всем привет.
Передо мной поставили задачу написать модуль. Я никогда раньше их не писал, и вот я обращаюсь к вам, программеры.

Можете в кратце изложить основные принципы написания модуля?

Что и как передавать и возвращать.

Автор: Nobody 30.8.2004, 14:46
http://world.std.com/~swmcd/steven/perl/module_mechanics.html

Автор: ElectricalStorm 30.8.2004, 14:50
s_a_s_h_a - купите CookBook

Автор: s_a_s_h_a 31.8.2004, 16:36
Будут деньги - куплю. А сейчас меня интересует, как сделать следующее.
Предположим что вызывается функция $p->function1(param1,param2,..);
Где параметр есть другая функция $p->function2(param21,param22,..);
Как быть в таком случае? Я не понимаю.

Автор: ElectricalStorm 31.8.2004, 17:27
что Вас смущает ?


Код

print &substract( &add(2+2)  - 2);

sub substract
{
    shift - 2;
}


sub add
{
    return shift + shift;
}




Автор: s_a_s_h_a 1.9.2004, 08:55
Меня смущает следующее. Опишу проблему на конкретном примере.
Модуль должен генерировать RTF-документ.
Например, функция head(x,y,..) должна создавать колонтитул
{\header... value_of_head }, а функция image(a,b,c) - вставлять в документ картинку
{\pict... image}.
Теперь предположим, что в колонтитул нам надо вставить картинку. Т.е.
head(x,y,image(a,b,c),..) в результате должно получиться
сначала {\header... потом {\pict... image} затем }
А может быть будет head(x,y,text("text"),..) или table(col1,col2,image(a,b,c),col4,..)
А может быть и не надо буде передавать в качестве параметра одной функции результат другой.

Также мне не понятно где и когда лучше в данном случае производить запись в файл.
Вот это все мне не понятно.

И Ваш пример мне тоже не понятен.

Автор: ElectricalStorm 1.9.2004, 13:08
лучше делать так как проще ... чесо слово ...
делайте как Вам проще...

если нужно вставить картинку в колонтитул то значит надо втавить картинку в колонтитул ... smile.gif

если проблема тока с этим созвайте новый топик мы ее решим побыренькому

Автор: s_a_s_h_a 1.9.2004, 14:14
Для меня проще написать криво (чтобы решалась только поставленная задача). А хотелось
бы научиться программировать! В данном случае написать нормальный модуль, чтобы потом
меня не покрывали матом, что так нельзя, этого нельзя, а доделать или переделать просто
невозможно. В общем, то что мне надо почти уже сделал, а на досуге надо будет все заново
переделать. Можно я потом вышлю пару скриптов (вместе строк 1000), а Вы мне скажите над чем
мне поработать, или вообще не стоит программировать. Можно?

Автор: ElectricalStorm 1.9.2004, 14:52
канеша...
главное не боись просто у тебя мало практики ...

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)