我们的网站使用 Perl 为我们的人力资源人员提供一个简单的机制来将职位空缺发布到我们的网站。它是由第三方开发的,但他们早就开始接触了,遗憾的是我们内部没有任何 Perl 技能。当营销人员绕过他们的内部 IT 团队时,就会发生这种情况!
我需要对此应用程序进行简单的更改。目前,职位空缺页面显示“我们目前有以下职位空缺:”,无论是否有职位空缺!所以我们想改变它,使这条线只在适当的时候显示。
显然,我可以开始学习一点 Perl,但我们已经在计划一个替代站点,而且它肯定不会使用 Perl。因此,由于解决方案对于具有这些技能的人来说是微不足道的,我想我会寻求一些有针对性的帮助。
以下是列出职位空缺的程序的开始。
sub list {
require HTTP::Date;
import HTTP::Date;
my $date = [split /\s+/, HTTP::Date::time2iso(time())]->[0];
my $dbh = DBI->connect($dsn, $user, $password)
|| die "cannot connect to $database: $!\n";
my $sql = <<EOSQL;
SELECT * FROM $table where expiry >= '$date' order by expiry
EOSQL
my $sth = $dbh->prepare($sql);
$sth->execute();
while (my $ref = $sth->fetchrow_hashref()) {
my $temp = $template;
$temp =~ s#__TITLE__#$ref->{'title'}#;
my $job_spec = $ref->{'job_spec'};
...etc...
关键线是while (my $ref = $sth->fetchrow_hashref()) {
。我想这是在说'虽然我可以从返回的记录集中拉出另一个空缺......'。如果我将打印语句放在这一行之前,它将始终显示;在这条线之后,每个空缺都会重复。
我如何确定有一些空缺要显示,而不会过早地通过返回的记录集?
我总是可以在 while 循环中复制代码,并将其放在 if() 语句中(在 while 循环之前),该语句也将包括我的 print 语句。但我更喜欢使用更简单的方法If any records then print "We currently have.." line
。不幸的是,即使是这条简单的代码,我也不知道如何编写代码。
看,我告诉过你这是一个微不足道的问题,即使考虑到我笨拙的解释!
TIA
克里斯