our $job_cnt = 0;
+sub check_id($) {
+ my ($id) = @_;
+ return $id =~ /^([0-9A-Za-z-]+)$/;
+}
+
sub new($;$) {
my ($class, $id) = @_;
my $job = { };
bless $job;
if (defined $id) {
+ check_id($id) or die "Invalid job ID";
$job->{'ID'} = $id;
} else {
$job_cnt++;
$job->{'ID'} = POSIX::strftime("%Y%m%d-%H%M%S-$$-$job_cnt", localtime);
}
- $job->{'Subject'} = '(no subject)';
+ $job->{'Subject'} = '';
return $job;
}
$job->{'body'} = join("", @cmds);
}
close T;
- $job->{'Subject'} //= '?';
+ $job->{'Subject'} //= '';
$job->{'ID'} or die "Cannot load $file: Missing ID";
- $job->{'ID'} !~ /\.[a-z]+$/ or die "Cannot load $file: Invalid ID syntax";
+ check_id($job->{'ID'}) or die "Cannot load $file: Invalid ID syntax";
return bless $job;
}