![]() |
|
Модераторы: korob2001, ginnie |
![]()
|
|
| s_a_s_h_a |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 261 Регистрация: 20.7.2004 Где: Петрозаводск Репутация: нет Всего: 1 |
Случилась такая трабла: мне надо передать функции, например, следующий параметр
картинка1 текст1 картинка2 текст2 (причем картинка - уже результат работы другой функции и является ссылкой на скаляр). Передать одну картинку и обработать не проблема, а трабла вот в чем передаю строку "SCALAR(0x81a3bc4) str1 SCALAR(0x81a3bf4) str2" регулярными вырыжениями вычленяю SCALAR(....) и пытаюсь их разыменовать. У меня ничего не получается. Вопрос: если ссылки на скаляр объединяются со строками, то потом из них уже ничего не получить? |
|||
|
||||
| ElectricalStorm |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 547 Регистрация: 22.1.2004 Репутация: нет Всего: 9 |
Разименовать скаляр очень просто
-------------------- Нужно знать инструмент, которым пользуешься |
|||
|
||||
| s_a_s_h_a |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 261 Регистрация: 20.7.2004 Где: Петрозаводск Репутация: нет Всего: 1 |
А что такое 1?
|
|||
|
||||
| ElectricalStorm |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 547 Регистрация: 22.1.2004 Репутация: нет Всего: 9 |
число
Это сообщение отредактировал(а) ElectricalStorm - 6.9.2004, 16:07 -------------------- Нужно знать инструмент, которым пользуешься |
|||
|
||||
| s_a_s_h_a |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 261 Регистрация: 20.7.2004 Где: Петрозаводск Репутация: нет Всего: 1 |
А почему не 2?
Добавлено @ 16:11 Понял. Это был глобальный пример. Но у меня тяжелый случай у меня не просто ссылка на скаляр, а строка содержащая ссылки на скаляры и символы. Вот. Добавлено @ 16:16 my $str="SCALAR(0x81a3bc4) lalala SCALAR(0x81a3bf4) tytyty"; my @mas=($str =~ /(SCALAR\(0x[0-9a-f]+\))/g); for my $i (@mas) { print "${$i}\n"; print "$$i\n"; } не проходит. Это сообщение отредактировал(а) s_a_s_h_a - 6.9.2004, 16:19 |
|||
|
||||
| ElectricalStorm |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 547 Регистрация: 22.1.2004 Репутация: нет Всего: 9 |
ок ща
Это сообщение отредактировал(а) ElectricalStorm - 6.9.2004, 16:18 -------------------- Нужно знать инструмент, которым пользуешься |
|||
|
||||
| s_a_s_h_a |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 261 Регистрация: 20.7.2004 Где: Петрозаводск Репутация: нет Всего: 1 |
Уже
|
|||
|
||||
| dimes |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 249 Регистрация: 20.7.2004 Где: то около СПБ Репутация: нет Всего: 14 |
2s_a_s_h_a
не обижайся но это большой изврат! может конечно ты делаеш из спортивного интереса но почемубы сразу не передовать разыменоваными? далее возможно я ошибаюсь но ты стал жертвой молчаливых изменений типов в perl например: @q=qw(q w e); print (1+@q);# будет 4 Коментарии нужны? твой пример: $q=1; $w=\$q; # Ссылка на скаляр print $w;# SCALAR(0x155f098) например print ref($w);# SCALAR все ok print $$w;# 1 все правильно $e="$w";# Вот проблемма $w развернется как строка и как строка будет закинута в $e print $e;# SCALAR(0x155f098) но это уже не ссылка а просто строка print ref($e);# "" пустота все верно строка не является ссылкой print $$e;# "" что и требовалось доказать Это сообщение отредактировал(а) dimes - 6.9.2004, 17:38 |
|||
|
||||
| s_a_s_h_a |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 261 Регистрация: 20.7.2004 Где: Петрозаводск Репутация: нет Всего: 1 |
Если пойму, почему я так делаю, то напишу.
|
|||
|
||||
| ElectricalStorm |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 547 Регистрация: 22.1.2004 Репутация: нет Всего: 9 |
я подумал может получиться от евалить его ... не получиллось...
Это сообщение отредактировал(а) ElectricalStorm - 6.9.2004, 17:00 -------------------- Нужно знать инструмент, которым пользуешься |
|||
|
||||
| s_a_s_h_a |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 261 Регистрация: 20.7.2004 Где: Петрозаводск Репутация: нет Всего: 1 |
Наверное вот почему. Чтобы вставить картинку в ртф-документ надо ее запихать в
{\pict ... }, а в тексте надо все {,} и \ заменять на \'7b,\'7d и \'5c. Вот. И чтобы различать где строка, а где картинка, я запихивал картинку в скаляр, а теперь потребовалось (не мне), чтобы было то что было, написано вверху, и как раньше не проходит. |
|||
|
||||
| korob2001 |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 2871 Регистрация: 29.12.2002 Репутация: 31 Всего: 61 |
s_a_s_h_a вам обсолютно верно пояснил dimes
Вот вам простейший тест:
Удачи. -------------------- "Время проходит", - привыкли говорить вы по неверному пониманию. "Время стоит - проходите вы". |
|||
|
||||
![]()
|
| Правила форума "Perl" | |
|
|
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, korob2001, sharq. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Perl: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |