Я пытаюсь вытащить данные за 1 неделю с сервера sql, а затем попытаюсь записать данные в файлы с отдельными именами. Следующие коды не работают, и я не могу найти способ создания обработчиков файлов с переменной.Perl печатает выходные имена файлов с числовой переменной
Другой вопрос в том, что если размер данных sql огромен (1-2 гигабайта в день, а вся таблица превышает 1 год), то этот ежемесячный метод выборки быстрее, чем ежедневный выбор?
my $sqlGetEid = "select trunc(datetime, 'DD') truncdate, x, y from z
where DATETIME between TO_DATE('$dt1','YYYY-MM-DD') and TO_DATE('$dt1','YYYY-MM-DD')+7";
for ($day=1; $day<=7; $day++){
open('dayfile_$day', "> ./temp/Wireless_$day.csv");
}
while (my ($tday,$x,$y) = $curSqlEid->fetchrow_array())
{
printf {'dayfile_$tday'} ("%s,%d\n", $x,$y);
}
for ($day=1; $day<=7; $day++){
close('dayfile_$day');
}
FYI, одиночные кавычки в ' 'dayfile_ $ day' предотвращает интерполяцию переменной' $ day'. Конечно, это недействительные дескрипторы файлов. – TLP