Помогите с perl, Cyrus_user, 08-Июн-07, 09:17 [смотреть все]вот такой скриптик: my $dat = sprintf '%u_%02u_%02u', (localtime time)[5]+1900,(localtime time)[4]+1,(localtime time)[3]; $^I = '.old';#режим перезаписи open FILE,"file.tmp" || die "cannot open file"; while (<FILE>) { ($mail, $data,) = split(/:/); print FILE,"$mail:$data\n" if ($data ne $dat); } close FILE;делая операцию над файлом file.tmp: aaa@xxx:2007_04_08 bbb@xxx:2007_05_08 ccc@xxx:2007_06_08 по идее должен перезаписать file.tmp убрав строки, где $data не равна $dat и создать копию file.tmp.old но вместо этого он пишет: No comma allowed after filehandle Не могу понять что ему не нравится? А также вопрос второй: как мне стандартными средствами в $dat получить например 10 дней назад? Что то помучился, но не смог :(
|
- Помогите с perl, cat, 10:26 , 08-Июн-07 (1)
>вот такой скриптик: >my $dat = sprintf '%u_%02u_%02u', (localtime time)[5]+1900,(localtime time)[4]+1,(localtime time)[3]; >$^I = '.old';#режим перезаписи >open FILE,"file.tmp" || die "cannot open file"; >while (<FILE>) { >($mail, $data,) = split(/:/); >print FILE,"$mail:$data\n" if ($data ne $dat); >} close FILE; > >делая операцию над файлом file.tmp: >aaa@xxx:2007_04_08 >bbb@xxx:2007_05_08 >ccc@xxx:2007_06_08 >по идее должен перезаписать file.tmp убрав строки, где $data не равна $dat > >и создать копию file.tmp.old > >но вместо этого он пишет: >No comma allowed after filehandle > >Не могу понять что ему не нравится? > >А также вопрос второй: >как мне стандартными средствами в $dat получить например 10 дней назад? Что >то помучился, но не смог :( >print FILE,"$mail:$data\n" if ($data ne $dat); print FILE "$mail:$data\n" if ($data ne $dat);
2 перевести в unixtime и вычесть количество секунд в 10 днях и обратно в дату
- Помогите с perl, Cyrus_user, 11:04 , 08-Июн-07 (2)
>>print FILE,"$mail:$data\n" if ($data ne $dat); >print FILE "$mail:$data\n" if ($data ne $dat); > ой,слона то я и не заметил :) спасибо.>2 перевести в unixtime и вычесть количество секунд в 10 днях и >обратно в дату пробую... спасибо. однако не всё так просто. редактирование inline что-то не работает. в таком виде скрипт ничего не делает.. +> сначала очистит, потом добавит.. заводить временный массив? +< добавляет желаемое в конец. как правильно использовать $^I (как в однострочнике perl -i) в таком скрипте?
- Помогите с perl, Homewrecker, 11:11 , 08-Июн-07 (3)
>>>print FILE,"$mail:$data\n" if ($data ne $dat); >>print FILE "$mail:$data\n" if ($data ne $dat); >> >ой,слона то я и не заметил :) спасибо. > >>2 перевести в unixtime и вычесть количество секунд в 10 днях и >>обратно в дату >пробую... спасибо. > > >однако не всё так просто. редактирование inline что-то не работает. в таком >виде скрипт ничего не делает.. >+> сначала очистит, потом добавит.. заводить временный массив? >+< добавляет желаемое в конец. open (FILE,">>","file.tmp") || die "cannot open file"; while (<FILE>) {..
- Помогите с perl, Cyrus_user, 11:43 , 08-Июн-07 (4)
>>>>print FILE,"$mail:$data\n" if ($data ne $dat); >>>print FILE "$mail:$data\n" if ($data ne $dat); >>> >>ой,слона то я и не заметил :) спасибо. >> >>>2 перевести в unixtime и вычесть количество секунд в 10 днях и >>>обратно в дату >>пробую... спасибо. >> >> >>однако не всё так просто. редактирование inline что-то не работает. в таком >>виде скрипт ничего не делает.. >>+> сначала очистит, потом добавит.. заводить временный массив? >>+< добавляет желаемое в конец. >open (FILE,">>","file.tmp") || die "cannot open file"; >while (<FILE>) {.. но так он из файла ничего не читает..
|