Программа читает построчно огромный файл и некоторые интересные мне строки пишет в другой файл, а глюк в том что она "вылетает" при попытке записи строки номер 7200177 в другой файл, т.е. семь миллионов нормально блин читает и некоторые пишет, а на этой долбанной строчке вылетает, а в другом файле вылетает на 5030521-ой строчке, а некоторые такие же большие файлы вполне нормально читает, и выдёргевает строки.
Посмотрел я эти строки, и они вполне адекватны, меньше 100 байт каждая, тупо буквы латинского алфавита, без символов типа: # $ % ^ & * / | \ и т.п.
Кто-нибуль знает в чём косяк?
Причём вылетает с ошибкой: попытка изменения атрибута чтение/запись.
А запускаю я от root`а.
Алгоритм чтения и записи примерно такой:while( $line=<ALLMAIL> )
{
if (условие)
{
printf TRESULT $line;
}
}Я ваще в шоке, помагите кто знает.
>А запускаю я от root`а.
>Алгоритм чтения и записи примерно такой:
>
>while( $line=<ALLMAIL> )
>{
> if (условие)
> {
> printf TRESULT $line;
> }
>}
>
>Я ваще в шоке, помагите кто знает.1. Не пускай от root'а разрабатываемую программу
2. Начинай программу с #!/usr/bin/perl -W (ну, или где он там у тебя?)
3. Продолжай use strict;Программа не должна давать ни одного предупреждения без подавления оных. Когда избавишься ото всех, задай вопрос снова. Скорее всего где-то накосячил с переменными.
>>А запускаю я от root`а.
>>Алгоритм чтения и записи примерно такой:
>>
>>while( $line=<ALLMAIL> )
>>{
>> if (условие)
>> {
>> printf TRESULT $line;
>> }
>>}
>>
>>Я ваще в шоке, помагите кто знает.
>
>1. Не пускай от root'а разрабатываемую программу
>2. Начинай программу с #!/usr/bin/perl -W (ну, или где он там у
>тебя?)
>3. Продолжай use strict;
>
>Программа не должна давать ни одного предупреждения без подавления оных. Когда избавишься
>ото всех, задай вопрос снова. Скорее всего где-то накосячил с переменными.
>
////////////////////////////////////////////////////
Спасибо.
Я нашёл собаку зарытую !!!!!
Только понять не могу почему такая хeрнYa/
Надо было не printF а обычный print использовать. Кто-нибудь может объяснить почему с
printF вылетает, а с print нет!?
Я в PERLе чайник китайский, на другом обычно пишу.
>>>А запускаю я от root`а.
>>>Алгоритм чтения и записи примерно такой:
>>>
>>>while( $line=<ALLMAIL> )
>>>{
>>> if (условие)
>>> {
>>> printf TRESULT $line;
>>> }
>>>}
>>>
>>>Я ваще в шоке, помагите кто знает.
>>
>>1. Не пускай от root'а разрабатываемую программу
>>2. Начинай программу с #!/usr/bin/perl -W (ну, или где он там у
>>тебя?)
>>3. Продолжай use strict;
>>
>>Программа не должна давать ни одного предупреждения без подавления оных. Когда избавишься
>>ото всех, задай вопрос снова. Скорее всего где-то накосячил с переменными.
>>
>////////////////////////////////////////////////////
>Спасибо.
>Я нашёл собаку зарытую !!!!!
>Только понять не могу почему такая хeрнYa/
>Надо было не printF а обычный print использовать. Кто-нибудь может объяснить почему
>с
>printF вылетает, а с print нет!?
>Я в PERLе чайник китайский, на другом обычно пишу.Элементарно Ватсон. Матчасть нужно знать. Сколько уже сервисов из-за таких писателей полегло. Формат printf:
printf(FILEHANDLE FORMAT, LIST)и никак не
printf(FILEHANDLE, LIST)Далее ищем в www.google.com /printf vulnerability