Выполнение следующего в Perl v5.12.3 на MacOS 10.7.2:
#!/usr/local/bin/perl
use strict;
use warnings;
use DBI;
my $db = DBI->connect("dbi:SQLite:testdrive.db") or die "Cannot connect: $DBI::errstr";
my @times = ("13:00","14:30","16:00","17:30","19:00","20:30","22:00");
my $counter = 1;
for (my $d = 1; $d < 12; $d++) {
for (my $t = 0; $t < 7; $t++) {
#weekend days have 7 slots, weekdays have only 4 (barring second friday)
if (($d+4) % 7 < 2 || ($t > 3)) {
$db->do("INSERT INTO tbl_timeslot VALUES ($counter, '$times[$t]', $d);");
$counter++;
#add 4:00 slot for second Friday
} elsif (($d = 9) && ($t = 3)) {
$db->do("INSERT INTO tbl_timeslot VALUES ($counter, '$times[$t]', $d);");
$counter++;
}
}
}
$db->disconnect;
Я получаю предупреждение «Найдено = в условном, должно быть == в addtimes.pl строка 16», но естьнет знака равенства на этой линии.Кроме того, цикл, кажется, начинается в $d == 9
.Чего мне не хватает?
Строка 16:
if (($d+4) % 7 < 2 || ($t > 3)) {
Спасибо.