
初心者です。よろしくお願いします。
WindowsXP,ProffesionalでApache,LANの中だけでやっています。
以下の(1)、(2)が Apache の error.log に 非常にたくさん出てきて困っています。
(1) Argument "-" isn't numeric in numeric comparison (<=>) at C:/ApacheGroup/--- line 235., referer: http://---
(2) Argument "\\n" isn't numeric in numeric comparison (<=>) at C:/ApacheGroup/--- line 235., referer: http://---
このファイルは、だいたい以下のようになっています。
#!/usr/bin/perl -T
use strict;
use warnings;
use CGI qw(-debug :standard);
# 45個のファイルから一行目を取り出します。
open(FILE, "../4k/4k01/+score.txt") or die "$!";
my $line1 = <FILE>;
close(FILE);
#------------------------------------------
open(FILE, "../4k/4k02/+score.txt") or die "$!";
my $line2 = <FILE>;
close(FILE);
#------------------------------------------
# これを繰り返します。
#------------------------------------------
open(FILE, "../4k/4k45/+score.txt") or die "$!";
my $line45 = <FILE>;
close(FILE);
#------------------------------------------
# 取り出した行の例は
# 82,問題番号,1548,2009年07月15日 14時11分20秒 ( = $line1)
# です。
# この行は、別の cgi ファイルで、以下のように書き込んだものです。
---------------------------------------------
# open(FILE, '<+score.txt') or die "$!";
# my @data = <FILE>;my ($e, $f , $g, $h) = split(/,/, $data[0]);
# close(FILE);
# my $data2 = $e +1;
# open(FILE, '>+score.txt') or die "$!";
# print FILE $data2;
# print FILE (",問題番号,$num,$year年$mon月$day日 $hour時$min分$sec秒\n");
-------------------------------------------
# これを @array に 入れます。
my @array = ("$line1,4k01","$line2,4k02", ---繰り返し--,"$line45,4k45");
# ソートして、表示します。
@array = sort { (split(/\,/,$b))[0] <=> (split(/\,/,$a))[0]} @array; #-- line 235
for my $val (@array){ #-- line 236
print $val . "<br>"; #-- line 237
}
すると、---
104,問題番号,1541,2009年07月15日 14時26分46秒 ,4k06
102,問題番号,1541,2009年07月15日 14時29分43秒 ,4k18
94,問題番号,1541,2009年07月15日 14時20分07秒 ,4k20
82,問題番号,1541,2009年07月15日 14時30分14秒 ,4k25
以下省略
--- と 表示されます。
error.log に表示されないようにするには、どうしたら、いいでしょうか? お教えください。
No.2ベストアンサー
- 回答日時:
perl -Mstrict -Mwarnings -e 'print "foo" <=> "bar"'
Argument "bar" isn't numeric in numeric comparison (<=>) at -e line 1.
Argument "foo" isn't numeric in numeric comparison (<=>) at -e line 1.
たぶん"-"と"\\n"(これ改行文字をシングルクォートで囲んでませんか・・・?)を比較してるんだと思いま
す。
元のファイルが間違ってる可能性が高いです。
ご回答、まことにありがとうございました。
open(FILE, "../4k/4k01/+score.txt") or die "$!";
my $line1 = <FILE>;
close(FILE);
を
open(FILE, "../4c/4k01/+score.txt") or die "$!";
my $line1a = <FILE>;
my $line1 = "$line1a - 4k01";
close(FILE);
と直しました。そして
my @array = ("$line1,4k01","$line2,4k02", ---繰り返し--,"$line45,4k45");
を
my @array = ($line1,$line2, ---繰り返し--- ,$line44,$line45);
としました。
そして、元のファイルが空のとき、
0,
を書き込みました。
そうしたら、うまくいきました。
ありがとうございました。
No.3
- 回答日時:
「元のデータに問題がないかどうかわからない」というなら, まずそれを確かめてください. データ自体が間違っていたら話にもなりません
よ.No.1
- 回答日時:
とりあえず確認したいんですが, 元のデータは問題ないですか?
あと, ソートせずに出力したら問題ないんでしょうか?
ありがとうございます。ソートせずに
for (my $i = 0; $i < 46; $i++){
print $array[$i];
print "<br>";
}
としたら、そして、
no warnings qw(uninitialized);
としたら、Apache の error.log には何も表示されません。
問題ない、と思われます。
元のデータは問題ないのか、どうか、は、私にはわかりません。元のデータはテキストファイルから読み込んだ1行です。
すみません。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- CGI htmlからパラメータで、cgiに渡したい。 1 2023/02/06 16:15
- C言語・C++・C# c言語の問題の説明、各所ごとに 5 2023/07/26 11:03
- その他(プログラミング・Web制作) python flask から fastapiへの移行時のエラー対処 1 2023/02/05 12:26
- Ruby 教えてください 2 2023/01/04 17:50
- その他(プログラミング・Web制作) python 2 2022/12/23 09:06
- その他(プログラミング・Web制作) pythonのこのエラーがわかりません 3 2022/11/16 14:54
- Visual Basic(VBA) このVBAでExcelアプリケーションを作成は必要ですか? 3 2023/07/19 21:13
- Perl perlのflock関数でロックをかけたままopen関数で何度もファイルを開きなおすことはできますか 3 2023/05/01 22:25
- その他(プログラミング・Web制作) Pythonを勉強しています。 5 2023/08/25 09:51
- その他(プログラミング・Web制作) pythonのエラーについて 2 2022/08/17 17:17
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
データ項目の並び替えについて
-
番号をつける
-
データファイルからのデータの...
-
どのようなプログラムをつくれ...
-
perl で作成された文書と知るに...
-
フォルダに入っているファイル...
-
2つ質問があり、まず1つ目な...
-
perlでの三次元配列の作り方
-
正規表現に関して
-
Perlでのforeach文の挙動がわか...
-
ディレクトリー内のリスト出力...
-
レコードの書込み判断
-
cgiでdocument.writeの書き出し
-
パラメーターについて
-
Perl→exe
-
ListBoxのデータを高速でファイ...
-
「パスが見つかりません」とい...
-
IEのリロードボタンを押すとデ...
-
WEBサイトを、一部動的に表示す...
-
ファイル名が日本語の物をダウ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
perlでcsvファイルを読む(ダブ...
-
Perlで特定行から特定行までを...
-
MATLAB std::exceptionエラー
-
htmlファイルをテキストファイ...
-
Perl 順位の重複
-
パイソンでCSVファイル場所を指...
-
FTP接続時失敗時、接続先名をcs...
-
Perlを利用してテキストフ...
-
書き込み時に勝手にクリアさせ...
-
Perlの初心者です。2重ループ...
-
データベースを使わず、テキス...
-
ファイルオープンの挙動
-
perlでファイルの比較
-
Perlでの重複要素カウントにつ...
-
CSVファイルをperlプログラムで...
-
先頭の単語が一致した時のデー...
-
Argument "\\\\n" isn't numeri...
-
パターンマッチングにおいて変...
-
perl:パターンマッチを使ったif...
-
BBCode削除&改行をサニタイジ...
おすすめ情報