- RU.PERL ----------------------------------------------------------- RU.PERL -
Msg : #2506 [500]
От : Sergey Gernichenko 2:5079/49.18 10 февраля 04, 09:24
Кому : Dmitry Y. Labutin 14 февраля 04, 22:51
Тема : Re: Передача HASH'а в процедуру по значению
-------------------------------------------------------------------------------
Привет, *Dmitry*!
Во вторник, 10 февраля 2004 года, в 02:21, Dmitry Y. Labutin писал(а) All:
DYL> Hужно следующее.
DYL> Hапример есть хеш:
DYL> $q{a} = 1;
^^^^^^^^^^^^^^^^^
DYL> Hужно в функцию передать хеш $q{значение здесь вычисляется в ходе
DYL> работы},
Я не понял, у тебя значения элементов хеша скаляры или что???
Судя по подчеркнутому - скаляры.. Судя по этому, то вроде как ссылки на хеши...
Запомни, элементом хеша может быть *только* скаляр. Ссылка на хеш или массив
является скаляром.
DYL> Что-то в этом роде:
Если я тебя правильно понял...
DYL> sub qqq
DYL> {
DYL> @_[0]{b} = 2;
$_[0]->{b}=2;
DYL> }
DYL> $q{a} = 1;
DYL> qqq ($q{b});
qqq(\$q{b});
DYL> print $q{a}; # печатает 1
DYL> print $q{b}{b}; # печатает 2
print $q{b}->{b}
DYL> print $q{b}{с}; # печатает 3
DYL> Естественно это не работает. Как правильно нужно это написать?
DYL> И вопрос вдогонку - как проверить $q{b} - это конечное значение или
DYL> вложенный хеш?
perldoc ref
До свидания, *Dmitry* С уважением, *Sergey*.
... А сегодня хорошая погода
--- WinNT 5.1.2600-Service_Pack_1 i1586 Eng, AS Perl5.6.1, Borland C++ v5.02
* Origin: Работать надо, пока ещё не лень (2:5079/49.18)