![]() |
|
Модераторы: korob2001, ginnie |
![]()
|
|
| Гость_Valery |
|
|||
|
Unregistered |
Передаю в подпрограмму, которая находится подключаемом модуле,
переменную вида 'abcdefgh', т. е. строка символов, далее хочу посимвольно разделить её в массив: @array = split ( '', $var ). Инициализации массива НЕ ПРОИСХОДИТ! Когда подпрограмма в том же файле, то всё работает... Что неправильно??? |
|||
|
||||
| HalkaR |
|
|||
![]() Пуфыстый назгул ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 2132 Регистрация: 8.12.2002 Где: В Москве Репутация: нет Всего: 42 |
А сам то перменная передается?
Можно исходники поглядеть? |
|||
|
||||
| g-valery |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 3 Регистрация: 9.6.2004 Репутация: нет Всего: нет |
Сама переменная передается. Да и если бы не передавалась, массив, хотя бы пустой,
должен быть? А про исходники - я ж написал: @array = split ( '', $var ) $var='абвгдежз' и т.д., то есть строка символов, в отладчике смотрел, переменная присутствует |
|||
|
||||
| korob2001 |
|
||||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 2871 Регистрация: 29.12.2002 Репутация: 31 Всего: 61 |
Это не исходник. На такой исходник могу дать только такой ответ:
Так эта строка будет выглядеть более правильно. Если проблема так и осталась не решённой, давай исходник. Это форум программистов, а не ясновидещих. Удачи. -------------------- "Время проходит", - привыкли говорить вы по неверному пониманию. "Время стоит - проходите вы". |
||||
|
|||||
| g-valery |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 3 Регистрация: 9.6.2004 Репутация: нет Всего: нет |
sub koi2unicode
{ %decode=( 'А'=>'10','Б'=>'11','В'=>'12','Г'=>'13','Д'=>'14','Е'=>'15','Ж'=>'16','З'=>'17', 'И'=>'18','Й'=>'19','К'=>'1a','Л'=>'1b','М'=>'1c','Н'=>'1d','О'=>'1e','П'=>'1f', 'Р'=>'20','С'=>'21','Т'=>'22','У'=>'23','Ф'=>'24','Х'=>'25','Ц'=>'26','Ч'=>'27', 'Ш'=>'28','Щ'=>'29','Ъ'=>'2a','Ы'=>'2b','Ь'=>'2c','Э'=>'2d','Ю'=>'2e','Я'=>'2f', 'Ё'=>'01', 'а'=>'30','б'=>'31','в'=>'32','г'=>'33','д'=>'34','е'=>'35','ж'=>'36','з'=>'37', 'и'=>'38','й'=>'39','к'=>'3a','л'=>'3b','м'=>'3c','н'=>'3d','о'=>'3e','п'=>'3f', 'р'=>'40','с'=>'41','т'=>'42','у'=>'43','ф'=>'44','х'=>'45','ц'=>'46','ч'=>'47', 'ш'=>'48','щ'=>'49','ъ'=>'4a','ы'=>'4b','ь'=>'4c','э'=>'4d','ю'=>'4e','я'=>'4f', 'ё'=>'51'); $out=''; @a = split('',$text_koi); foreach (@a) { if (exists($decode{$_})) { $_=$decode{$_}; $_="$#x04".$_.";"; $out=$out.$_; } } return $out; } В $text_koi - передаваемая строка символов |
|||
|
||||
| GoodBoy |
|
||||||
![]() Главный джедай ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 3886 Регистрация: 8.1.2003 Где: КМВ Репутация: 2 Всего: 83 |
А где ты ее в процедуру передаешь?????????? сделай так:
и вызывай процедуру так:
|
||||||
|
|||||||
| g-valery |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 3 Регистрация: 9.6.2004 Репутация: нет Всего: нет |
Типа умных больше нету...
На: сделай так: sub koi2unicode { my $text_koi = shift; ... и вызывай процедуру так: my $ret = &koi2unicode($str); А мне казалось, из модуля надо вызывать $ret = MODULE->koi2unicode($str); Переменная ПЕРЕДАЕТСЯ!!! Что к ней привязялись? Повторяю еще раз вопрос: ПОЧЕМУ не создается массив (хотя бы пустой)? |
|||
|
||||
| Guest |
|
||||||
|
Unregistered |
Так вызывают метод класса. Если у тебя нормальный модуль, то он по идее должен экспорировать свои функции в пространство имён main. Goodboy всё правильно написал. Если же у тебя класс, попробуй написать его так: Назовём его: MyClass.pm
Сохрани его в каталоге /cgi-bin/test/MyClass Теперь давай попробуем вызвать твой метод koi2unicode: Втомже каталоге создай файл с таким содержимым:
Если где-то ошибка то дай знать, просто не тестировал, времени нет. Удачи. |
||||||
|
|||||||
| korob2001 |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 2871 Регистрация: 29.12.2002 Репутация: 31 Всего: 61 |
Ой, забыл войти в систему. Постинг выше, мой.
Это сообщение отредактировал(а) korob2001 - 15.6.2004, 20:50 -------------------- "Время проходит", - привыкли говорить вы по неверному пониманию. "Время стоит - проходите вы". |
|||
|
||||
![]()
|
| Правила форума "Perl" | |
|
|
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, korob2001, sharq. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Perl: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |