Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
Форум программистов > Perl: Общие вопросы > Проблема вывода |
Автор: OutlawZ 18.4.2009, 22:54 | ||||||||
Доброй ночи, собственно смешная проблема, но все же проблема, под вечер решил немного покодить и столкнулся с проблемой вывода решения двух переменных:
Проблема в строчке 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 18.4.2009, 23:48 |
Попробуйте: print "define * j= " . $define * $j . "\nd + k= " . ($d + $k) . "\n"; А вообще если Вы пропишите #!/usr/bin/perl -w или use warnings; То Вам perl напишет почему так. Так же могу посоветовать всегда использовать use warnings; А если Вам надо исключить какой-то кусок из предупреждений, лучше написать: no warnings; # Ваш хитрый русок кода use warnings; |
Автор: OutlawZ 19.4.2009, 00:07 |
Спасибо ![]() |
Автор: vadiml 19.4.2009, 14:11 |
amg, Ну это долго, это не для ленивых... добавление ключа -w проще и сразу напишет: Argument "define * j= 6\nd + k= 4" isn't numeric in addition (+) at qqqq.pl line строка и гораздо универсальнее |
Автор: ginnie 19.4.2009, 15:06 |
vadiml, с точки зрения универсальности B::Deparse как раз более универсален, а use warnings поможет лишь в части случаев (когда будут предупреждения). |
Автор: amg 20.4.2009, 06:25 |
Ключ -w само собой нужен. Но часто же бывает, что синтаксис правильный, поэтому предупреждения не будет, а последовательность выполнения операций программист и перл понимают по разному. Типичный пример: open F, $file || die; А насчет долго не для ленивых - я как раз ленив, поэтому эту операцию просто посадил на кнопку редактора. |