![]() |
|
Модераторы: korob2001, ginnie |
![]()
|
|
| Кнером |
|
||||||
|
тОрмоз ![]() ![]() Профиль Группа: Участник Сообщений: 346 Регистрация: 24.5.2006 Где: Санкт-Петербург Репутация: нет Всего: 19 |
Нужно чтобы выбранный пункт меню изменял свой цвет.
Из адреса получаю название ссылки, пункта меню. В текстовом файле хранится адрес, название ссылки и другое. Последовательно произвожу сравнение. Если совпадает, то изменяется цвет. Проблема в том, что на своей машине все работает. А вот когда заливаю на хостинг, не работает. Вывожу значение переменных на страницу, все верно. Должно работать. Но...
В текстовом файле содержится:
Для проверки устанавливаю ключ -w. Ошибок никаких не выдает. Подключаю модуль strict. Говорит, что такого нет и срипт вообще перестает работать. Хотя скачивал Perl с оф.сайта. У себя на машине установлен пакет Денвер. Так как не такие глубокие знания языка Perl, не могу разобраться в чем дело. |
||||||
|
|||||||
| Кнером |
|
|||
|
тОрмоз ![]() ![]() Профиль Группа: Участник Сообщений: 346 Регистрация: 24.5.2006 Где: Санкт-Петербург Репутация: нет Всего: 19 |
На своей машине выводится заначения нормально. А вот на хостинге, почему-то прибавляется в конце какой-то пробел.
Указал функцию chomp($test_link); которая как я понял должна убрать перевод строки, но... В верхнем меню, первый пункт должен быть оранжевого цвета. Это сообщение отредактировал(а) Кнером - 3.6.2006, 16:58 |
|||
|
||||
| Кнером |
|
|||
|
тОрмоз ![]() ![]() Профиль Группа: Участник Сообщений: 346 Регистрация: 24.5.2006 Где: Санкт-Петербург Репутация: нет Всего: 19 |
Такое ощущение, что функция chomp на хостинге не срабатывает.
Убрав ее, на моей мошине то же отобразились эти пробелы. |
|||
|
||||
| Кнером |
|
|||
|
тОрмоз ![]() ![]() Профиль Группа: Участник Сообщений: 346 Регистрация: 24.5.2006 Где: Санкт-Петербург Репутация: нет Всего: 19 |
Уважаемые, помогите, пожалуйста. Хотя бы натолкните на истенный путь.
До сих пор не могу разобраться с данной ошибкой. |
|||
|
||||
| sharq |
|
||||
![]() Perl Liker ![]() ![]() Профиль Группа: Участник Сообщений: 841 Регистрация: 13.12.2004 Где: Ростов-на-Дону Репутация: 2 Всего: 28 |
Кнером,
у тебя все полетит, т.к. код пишешь не красиво. (хотя сам таким был, когда начинал Поставь Perl с ActiveState, версия 5.8.8 (последняя стабильная) Пиши с
для чего придется объявлять переменные (my, our, local). работа с файлами:
для работы с CGI - используй модуль CGI.pm (функция param) (хотя это не критично В общем собери все рекоммендации и у тебя все получится! -------------------- [color=gray]There's More Than One Way To Do It[/color] |
||||
|
|||||
| Кнером |
|
||||||
|
тОрмоз ![]() ![]() Профиль Группа: Участник Сообщений: 346 Регистрация: 24.5.2006 Где: Санкт-Петербург Репутация: нет Всего: 19 |
Что значит не красиво? Не верно оформляю код или не верно составляю конструкции? Если можно чуть поподробнее, так как я к этому серьезно отношусь и стараюсь соблюдать все правила. В какой-то степени помешан на стандартах. Как быть если у хостера стоит старая версия? У меня сейчас установлен Perl с ActiveState, версия 5.6.1. Если я буду разрабатывать сайт на 5.8.8 это будет совместимо с 5.6.1? Или трести хостера, чтобы он установил 5.8.8?
Пишу strcit или strict, выдает Can't locate название.pm in @INC (@INC contains: .) at... Набрал perldoc strict, выдала справку. По всей видимости, данный вариант верный.
Я пробывал использовать CGI.pm для передачи одного параметра. Но я не знаю как использовать для нескольких параметров. Выше я привел пример, где я получаю весб адрес, а затем разбираю его. Мне нужно учитывать все действия пользователя. Нужно чтобы в адресе не были логин и пароль, чтобы в адресе были выбранные действия. Мне пока не нравится или пока не могу понять, для чего все время указывать my и cgi->тра-та-та. То есть меня не устраивает лишняя писанина. Зачем писать лишний код? Чем меньше скобок тем лучше? Эх, а я уже 600 строк наваял Как узнать где можно убрать скобки, а где нет? Есть ли какой-нибудь стандарт? У меня в книжке "Освой самостоятельно Perl за 24 часа" написан формат: open (дескриптор_файла, путь) Исходя из этого, я и написал в таком виде. Я понимаю, что книжка не ахти. Что есть то есть. Будет возможность, сразу же куплю хорошую, толстенную книгу. Будет здорово, если посоветуешь. Благодарю за ясный и полный ответ! Была бы возможность, поставил бы +! |
||||||
|
|||||||
| sharq |
|
||||||||||
![]() Perl Liker ![]() ![]() Профиль Группа: Участник Сообщений: 841 Регистрация: 13.12.2004 Где: Ростов-на-Дону Репутация: 2 Всего: 28 |
Кнером, вижу твое стремление разобраться, молодец!
Но не с той книжки ты начал! Я на твоем месте про нее бы забыл и вспомнил попозже, когда можно будет посмеяться над ее содержимым. Теперь серьезно. На счет документации - здесь ни раз уже писали, повторюсь: доверять можно только - основной документации Perl (тем более ты помешан на спецификациях), ее можно найти он-лайн и в стандартном дистрибутиве Perl (в консольном варианте (команда perldoc) и в html-варианте) - книги (в основном от O'reilly), вот основные:
Но основной источник - это perldoc, т.к. книги могут устаревать, нуждаются в переиздание, а perldoc обновляется вместе с дистрибутивом.
И то и другое. Вот прочти perldoc perlstyle. Можешь попросить хостера установить новую версию, т.к. предыдущая уже устарела. В принципе версии совместимы, если ты не будешь использовать особенностей perl 5.8.x (unicode, perlIO, ...) Можно также почитать на соответствующей странице документации.
Это на сервере или на локальном компе? Если на локальном, то поставь поверх урезанного Perl от Денвер нормальный Perl (ставь версию 5.8.8).
скоро-скоро поймешь Вот это в самую точку! Но my или использование ООП - не лишний код. В принципе - да
Все зависит от приоритетности, и если ты уверен, то скобки можно опускать.
Только одно могу сказать, если нужна инфа по функциям или особенностям Perl, то смотри perldoc. Поэтому perldoc -f open или ищи open на странице perlfunc. В общем, удачи, читай документацию и пиши красивый код! -------------------- [color=gray]There's More Than One Way To Do It[/color] |
||||||||||
|
|||||||||||
| Кнером |
|
|||
|
тОрмоз ![]() ![]() Профиль Группа: Участник Сообщений: 346 Регистрация: 24.5.2006 Где: Санкт-Петербург Репутация: нет Всего: 19 |
Спасибо!
Согласен. Осебенно не советую такого рода книгу, если это первый язык программирования. У меня Perl не первый. Поэтому данную книгу чисто как справочник использовал. Теперь последую твоему совету, отложу. Получается, что лучше книгу не покупать? То есть perldoc на все случаи жизни? Это все понятно, спасибо.
По верх, к сожалению, не совесем понятно как ставить. Я установил просто отдельно, а в проекте указываю другой путь. Например, #!C:\Perl\bin\perl. Из-за этого кстати я и сглюканул с use strict;. В программе указывался путь на урезанный Perl Денвера. Поэтому и не находил. Я немного не верно высказался. Я не говорю, что my или ОПП - это лишний код. Я за использование данных мулек. Предположим, что чаще всего в функциях и указании переменных в модулях указываются локальные переменные. То есть мы все время пишем my. А в редких случаях нам нужно указать глобальную переменную. Исходя из этого, логичнее было считать по умолчанию, что все объявления переменных в функциях и т.д. являются локальными. Получается, что мы меньше будем писать оператор my. Таким образом меньше придеться тыкать по кнопкам и т.д. Это только мое личное предположение. Так как я только начал осваивать Perl. Поэтому могу ошибаться. Но если к примеру взять Pascal или C/C++ то объявляя перменную внутри функции, она там рождается при вызове функции и "умирает" при ее выполнении. Таким образом не нужно указывать, что эта переменная локальная. Взаимно! Спасибо! |
|||
|
||||
![]()
|
| Правила форума "Perl: CGI программирование" | |
|
|
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, korob2001, sharq. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Perl: разработка для Web | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |