URLからいくつかの変数をロードし、CGIスクリプトが初期化されているかどうかチェックします。私はすぐにPerlのリストに初期化されていない値を入れることができないことを知りました。リスト内の初期化されていない値の使用
私のアプローチは、単純にリストを反復し、スイッチ変数$sucessDOM
(すべてのデータが初期化されていれば1、他の場所では0)を使用することでした。
私はこの思い付いた:
### Read data from HTML
my $mailinglist = param('mailinglist');
my $firstname = param('firstname');
my $lastname = param('lastname');
my $mail = param('mail');
my $sucessDOM = 0;
my @DOM = { $mailinglist, $firstname, $lastname, $mail };
### Data validation
for my $data (@DOM) {
if ($data eq undef) {
$sucessDOM = $sucessDOM + 1;
}
if ($sucessDOM = @DOM) {
print "@DOM\n";
$sucessDOM = 1;
}
else {
$sucessDOM = 0;
}
}
私はまた、彼らはすべて初期化されていない場合のみ、二つの値についてのエラーが配列であるされている理由を理解することはできません
[Fri Dec 22 20:30:40 2017] read_form.cgi: Use of uninitialized value $mailinglist in anonymous hash ({}) at ./read_form.cgi line 20.
[Fri Dec 22 20:30:40 2017] read_form.cgi: Use of uninitialized value $lastname in anonymous hash ({}) at ./read_form.cgi line 20.
[Fri Dec 22 20:30:40 2017] read_form.cgi: Use of uninitialized value in string eq at ./read_form.cgi line 24.
HASH(0x55c8a73eeea8)
を次のように出力されます私が直接値を渡さずにスクリプトを実行するように。
'私の$ successDOM =はgrep {定義された($ _)!} $メーリングリストは、$ FIRSTNAME、$の姓、$メール;'! – ikegami