![]() |
Модераторы: korob2001, ginnie |
![]() ![]() ![]() |
|
OutlawZ |
|
||||||||
Опытный ![]() ![]() Профиль Группа: Awaiting Authorisation Сообщений: 269 Регистрация: 19.10.2007 Репутация: нет Всего: нет |
Доброй ночи, собственно смешная проблема, но все же проблема, под вечер решил немного покодить и столкнулся с проблемой вывода решения двух переменных:
Проблема в строчке print "define * j= " . $define * $j . "\nd + k= " . $d + $k . "\n"; вывод "define * j= " . $define * $j выводит все правильно а вот строчка "\nd + k= " . $d + $k . "\n"; выводит просто 2 вот результат:
Решил сделать так:
Выводит все правильно вот результат:
Вопрос, почему он не хочет принимать print "define * j= " . $define * $j . "\nd + k= " . $d + $k . "\n"; ?? Зарание спасибо ) -------------------- ![]() ![]() |
||||||||
|
|||||||||
vadiml |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 310 Регистрация: 27.7.2007 Репутация: 5 Всего: 7 |
Попробуйте:
print "define * j= " . $define * $j . "\nd + k= " . ($d + $k) . "\n"; А вообще если Вы пропишите #!/usr/bin/perl -w или use warnings; То Вам perl напишет почему так. Так же могу посоветовать всегда использовать use warnings; А если Вам надо исключить какой-то кусок из предупреждений, лучше написать: no warnings; # Ваш хитрый русок кода use warnings; |
|||
|
||||
OutlawZ |
|
|||
Опытный ![]() ![]() Профиль Группа: Awaiting Authorisation Сообщений: 269 Регистрация: 19.10.2007 Репутация: нет Всего: нет |
Спасибо
![]() -------------------- ![]() ![]() |
|||
|
||||
amg |
|
||||
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1145 Регистрация: 3.8.2006 Где: Новосибирск Репутация: 38 Всего: 50 |
Команду эту нужно исполнять из консоли (cmd в винде). Если у Вас винда, то внешние одинарные кавычки (из cmd не не понимает) нужно заменить на двойные, а все остальные двойные кавычки заэкранировать. Потом попробуйте то же самое, заменив все точки на запятые. |
||||
|
|||||
vadiml |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 310 Регистрация: 27.7.2007 Репутация: 5 Всего: 7 |
amg,
Ну это долго, это не для ленивых... добавление ключа -w проще и сразу напишет: Argument "define * j= 6\nd + k= 4" isn't numeric in addition (+) at qqqq.pl line строка и гораздо универсальнее |
|||
|
||||
ginnie |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 1287 Регистрация: 6.1.2008 Где: Москва Репутация: 38 Всего: 49 |
vadiml, с точки зрения универсальности B::Deparse как раз более универсален, а use warnings поможет лишь в части случаев (когда будут предупреждения).
-------------------- Написать код, понятный компьютеру, может каждый, но только хорошие программисты пишут код, понятный людям. (Мартин Фаулер. Рефакторинг) |
|||
|
||||
amg |
|
|||
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1145 Регистрация: 3.8.2006 Где: Новосибирск Репутация: 38 Всего: 50 |
Ключ -w само собой нужен. Но часто же бывает, что синтаксис правильный, поэтому предупреждения не будет, а последовательность выполнения операций программист и перл понимают по разному. Типичный пример:
open F, $file || die; А насчет долго не для ленивых - я как раз ленив, поэтому эту операцию просто посадил на кнопку редактора. |
|||
|
||||
![]() ![]() ![]() |
Правила форума "Perl" | |
|
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, korob2001, sharq. |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Perl: Общие вопросы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |