Forum Webscript.Ru

Программирование => Perl => Тема начата: gor от 26 Января 2005, 15:37:03

Название: script.pl > log.txt - не пишет в файл, а вываливает в stdout
Отправлено: gor от 26 Января 2005, 15:37:03
В скрипте с помощью print "выводится некоторая инфа";
Так вот, когда запускаю "script.pl > log.txt" - он не пишет в файл, а вываливает в системный вывод.
Почему?
Название: script.pl > log.txt - не пишет в файл, а вываливает в stdout
Отправлено: NeoNox от 26 Января 2005, 15:48:05
может скрипт покажешь или мы гадать должны?
Название: script.pl > log.txt - не пишет в файл, а вываливает в stdout
Отправлено: gor от 26 Января 2005, 15:56:27
Прошу прощения. Я думал, это не зависит от скрипта, что можно любой вывод направить в файл. К тому же, скрипт несколько велик:
http://rafb.net/paste/results/AzWXgE62.html
Название: script.pl > log.txt - не пишет в файл, а вываливает в stdout
Отправлено: Croaker от 26 Января 2005, 15:59:48
Цитировать
gor:
Я думал, это не зависит от скрипта


По идее не зависит. Попробуй перенаправить вывод в другйо файл, log2.txt например. Будет туда писать?
Название: script.pl > log.txt - не пишет в файл, а вываливает в stdout
Отправлено: gor от 26 Января 2005, 16:02:15
Цитировать
Croaker:
По идее не зависит. Попробуй перенаправить вывод в другйо файл, log2.txt например. Будет туда писать?

Нет. Не пишет. С правами всё в порядке.
Название: script.pl > log.txt - не пишет в файл, а вываливает в stdout
Отправлено: Croaker от 26 Января 2005, 16:04:06
Какая ОС? Какой шел? Как перенаправляешь вывод (точную строчку покажи)?
Название: script.pl > log.txt - не пишет в файл, а вываливает в stdout
Отправлено: NeoNox от 26 Января 2005, 16:07:58
поставь перед POE::Component::IRC->new( \'test\' ) or
  die "Can\'t instantiate new IRC component!\\n";
строчки типа
print "test\\n";
print STDOUT "Test 2\\n";
Что в log.txt?
Цитировать
Croaker:
По идее не зависит.

Это только по идее. А на самом деле я стандартные стдаут и стдерр могу отключить или перенаправить.
Название: script.pl > log.txt - не пишет в файл, а вываливает в stdout
Отправлено: gor от 26 Января 2005, 16:08:53
FreeBSD 5.3
bash 2.05
./script.pl > log.txt
Но тут загвоздка именно в скрипте. Ибо если я исполняю такой скрипт:
#!/usr/bin/perl
print "asdf";

То ./test.pl > test.log нормально работает
Название: script.pl > log.txt - не пишет в файл, а вываливает в stdout
Отправлено: gor от 26 Января 2005, 16:11:10
Цитировать
NeoNox:
поставь перед POE::Component::IRC->new( \'test\' ) or die "Can\'t instantiate new IRC component!\\n"; строчки типа print "test\\n"; print STDOUT "Test 2\\n"; Что в log.txt?

пусто…
(файл нулевого размера)
Название: script.pl > log.txt - не пишет в файл, а вываливает в stdout
Отправлено: NeoNox от 26 Января 2005, 16:31:16
вставь это после use strict;
Ты точно этот скрипт запускаешь?
Название: script.pl > log.txt - не пишет в файл, а вываливает в stdout
Отправлено: gor от 26 Января 2005, 16:43:35
Точно этот... Пусто.
Название: script.pl > log.txt - не пишет в файл, а вываливает в stdout
Отправлено: NeoNox от 26 Января 2005, 16:54:20
perl -cw script.pl
Кстати, что за формулировка вопроса "не пишет в файл, а вываливает в stdout"?
Название: script.pl > log.txt - не пишет в файл, а вываливает в stdout
Отправлено: gor от 26 Января 2005, 17:04:18
Цитировать
NeoNox:
perl -cw script.pl

script.pl syntax OK

Цитировать
NeoNox:
Кстати, что за формулировка вопроса "не пишет в файл, а вываливает в stdout"?

Ну, я не знаю как точно сформулировать. Я думаю, вы меня поняли...
Название: script.pl > log.txt - не пишет в файл, а вываливает в stdout
Отправлено: NeoNox от 26 Января 2005, 17:20:54
Я не понял. Что вываливается и куда?

Оставь эти строчки после use strict; и закомментируй все после них.
Есть результат? Тогда раскомментируй их постепенно и выяснишь где происходит сбой.
Название: script.pl > log.txt - не пишет в файл, а вываливает в stdout
Отправлено: Green Kakadu от 26 Января 2005, 17:21:41
Цитировать
gor:
он не пишет в файл, а вываливает в системный вывод.

а вываливает то что нужно?