初心者です。フォームに文字を入力してもらい、↓
print blockquote(
textfield(
-name => 'die Antwort',
省略----条件にあえば、
my $value = param('die Antwort');#として
if (($value eq $ans || $value eq $ans2) and ($c eq $num)){
「正解」と表示することにしました。すると、うまくいくのですが、
if (($value eq $ans || $value eq $ans2) and ($c eq $num)){
について「Use of uninitialized value ----」とApacheのerror logに書かれてしまいます。このためerror logがすぐに巨大なファイルになってしまいます。これを避ける方法をお教えください。よろしく、お願いいたします。
No.2
- 回答日時:
今回一番の問題は $value という変数ですよね?
参照前にいちいち defined で変数をチェックして回るのも面倒ですから、
サブルーチン param が undef の代わりに空文字列を返すようにするように変更するとか、
サブルーチンを変更できないのであれば、呼び出しの箇所で undef が返されたかどうかを確認し、
undef だったら適当に内容を書き換えるというやり方はどうでしょうか?
こんな感じ。
#!/usr/bin/perl
use strict;
use warnings;
use feature ':5.10';
sub foo {
undef;
}
my $var = foo;
#my $var = foo || 'dummy';
say $var;
これを実行すると
Use of uninitialized value $var in say at okw.pl line 15.
のような警告が出されますが、下のコメントアウトされている行と入れ替えると
dummy
のようになります。
No.1
- 回答日時:
回答になっているかわかりませんが、貼っときます。
ペタ---
# 方法1 予め不正解となる値で初期化しておいて "処理" で更新する
my $value = '';
# 処理
if ( ( $value eq $ans1 || $value eq $ans2 ) and ( $c eq $num ) ) {
print '正解', "\n";
}
else {
print '不正解', "\n";
}
# 方法2 definedで初期化されたか確認する
my $value;
# 処理
if ( ( defined $value )
and ( $value eq $ans1 || $value eq $ans2 )
and ( $c eq $num ) )
{
print '正解', "\n";
}
else {
print '不正解', "\n";
}
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- CGI perlで書いたcgiでsqliteの使い方を教えてください 2 2023/05/08 21:29
- Visual Basic(VBA) ExcelのVBAコードについて教えてください。 1 2023/02/02 09:25
- Visual Basic(VBA) エクセル VBA 難しいです 1 2023/02/21 15:39
- Visual Basic(VBA) 【再投稿】VBAで動作しなくて困っています 2 2022/10/11 11:05
- Perl Perlのエラーについてご教授ください。初心者です。 CGIを別サーバに移したところ、Perlのバー 5 2023/05/31 10:48
- Visual Basic(VBA) VBAのトグルボタンでのマクロについて質問です 3 2022/10/10 17:23
- Excel(エクセル) VBAの指示の内容 昨日こちらでご教示頂いたのですが初心者な為、一つ一つの指示が何をやっているのかわ 2 2022/10/25 18:08
- その他(プログラミング・Web制作) test([)コマンドによる条件判定 2 2022/08/10 12:28
- PHP 入力した部分を表示させたまま(保持)するにはどうすれば良いでしょうか? 1 2023/01/25 11:14
- Visual Basic(VBA) excel2021で実行できないマクロ。どこを直したらいいのか 2 2022/03/28 03:40
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
16進の10進変換について
-
pythonで演算子を変数に代入す...
-
【至急!!!】python言語で本を見...
-
Use of uninitialized value ---
-
ASPでの印刷について
-
コーディングについて
-
数値英単語変換
-
関数「exists」と「defined」の...
-
変数の中は文字列か数値か調べ...
-
Pythonでターミナルに文字を出...
-
c言語 16進数の2進数への変換
-
文字のカラーとフォントの指定...
-
ヒアドキュメントで表示した、...
-
数値かどうかの判定方法
-
python print文のエラー
-
Pythonの np.indicesに関する質...
-
awkの正規表現での最左最短マッ...
-
<python>数字あてゲーム
-
オーバーライドについて
-
JSONで文字列が長い時
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Pythonでターミナルに文字を出...
-
16進の10進変換について
-
パイソンのクラスについて
-
【至急!!!】python言語で本を見...
-
シェルスクリプトで、空白(ス...
-
I2C接続のLCDディスプレイを使う
-
int(input("○○"))の使い方
-
数値かどうかの判定方法
-
pythonで演算子を変数に代入す...
-
awkの正規表現での最左最短マッ...
-
Pythonでコンソールをクリアす...
-
pythonを使ったプログラミング...
-
c言語 16進数の2進数への変換
-
関数「exists」と「defined」の...
-
ソケットでのデータ送受信につ...
-
pythonの*
-
Perlの例文でif($a==1&&$b==5&&...
-
数値をスラッシュで区切る方法
-
変数の中は文字列か数値か調べ...
-
PythonでUTF8の文字列をリスト...
おすすめ情報