Forum Webscript.Ru
Программирование => Perl => Тема начата: dymka от 10 Января 2003, 18:44:49
-
хотелось бы сделать следущее:
попользоваться переменными,
затем какбы включить другой файл,
где производятся манипуляции с этими переменными
затем продолжить, работу с уже измененными переменными
т.е. нужно обеспечить глобальность переменных...
Глобальных переменных в перле вроде бы и нет, но может можно обойти сие ограничение... ???
чота у меня не получается пока никак.. :(
-
A return() никак задействовать не получается?
И ссылки кстати тоже очень даже помагают.
Или я твою проблему не понял? Может все проще.
-
понял как я понял, но:
1. Возвращать весь ворох переменных громоздко... или я неправильно понял... ???
2. Ссылки тоже... громоздко... или опять же неправильно понял...
Хочется просто...
Еще раз: просто есть код, общий для разных скриптов..
и код должен работать с переменными главного скрипта...
причем код идентичен... чтобы в каждом скрипте не повторяться, пришла идея использовать код один раз, но
встрял на грабли...
-
А попробовать создать свой модуль и можно переменные пользовать туда-сюда. Подойдет?
-
1. Делай их локальными, в пределах видимости саба или куска кода а потом прибивай. подумай над perldoc perlsub
2. Ничего это не громоздко.
Еще раз: просто есть код, общий для разных скриптов..
Вынести все общее нафиг в модуль...
и код должен работать с переменными главного скрипта...
...будетпричем код идентичен... чтобы в каждом скрипте не повторяться, пришла идея использовать код один раз, но
встрял на грабли...
Вывод: Создай модуль иначе сам создашь отличную грядку плотноуложенных граблей.
-
я так и создал - модуль...
мне такое давно известно... :)
привожу пример
test.pl
----
#!perl -w
use strict;
our $d = "first";
# далее хочу поработать в модуле с $d
print $d;
----
mymodule.pm
----
$d .= "second";
1;
----
хочу получить "firstsecond";
т.е. два вопроса...
1. как вызвать тот модуль
2. как обратиться в модуле к переменной $d ???
$main::d обращается почему-то не к той переменной.. :(
или я что-то недопонимаю...
-
народ... сорри.. торможу жестоко... стока пить неззя...
достаточно объявить процедуру и вызвать один раз... меня это устраивает!
правда я хотел эффекта require в php... хотя может оно и существует... решение... как в пхп...
-
а чем require в Perl тебя не устраивает?
сори, я не знаком с эффектом на PHP.
-
Сначала надо сказать:
use mymodule;
а потом в пакете можешь создать функцию:
sub add_to_d()
{
return "${_[0]}second";
}
вызвать ее в программе:
$d = add_to_d($d);
-
NeoNox сорри.. все пашет... устраивает и еще как...
просто по глупости ошибся... епрст.. с my работал, а не с our :)
пример свой тут перечитал и все ок :) заклинило так сказать...
больше нужно спать
USE не... у меня там с десяток другой переменных, поэтому я и не хочу делать через сабы... :)
Вернее у меня так и было через сабы, но хочется по цивильному ;)
Вопрос снят, всем спасибо!
PS. хороший форум, быстро отвечают ;)