初心者です。よろしくお願いします。
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.1
- 回答日時:
とりあえず確認したいんですが, 元のデータは問題ないですか?
あと, ソートせずに出力したら問題ないんでしょうか?
ありがとうございます。ソートせずに
for (my $i = 0; $i < 46; $i++){
print $array[$i];
print "<br>";
}
としたら、そして、
no warnings qw(uninitialized);
としたら、Apache の error.log には何も表示されません。
問題ない、と思われます。
元のデータは問題ないのか、どうか、は、私にはわかりません。元のデータはテキストファイルから読み込んだ1行です。
すみません。
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,
を書き込みました。
そうしたら、うまくいきました。
ありがとうございました。
お探しの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で特定行から特定行までを...
-
ファイルの3行目までを出力したい
-
エラーチェック、ファイルに特...
-
ディレクトリ内のtxtファイル中...
-
VBAコードを張り付け後のエクセ...
-
バッチファイルの作り方(CSV→...
-
batファイルでrenameができませ...
-
close()で例外が投げられる理由
-
vba dir の相対パス
-
MATLABのm-fileについて
-
文字列をカウントする方法
-
至急お願いします。C言語で.img...
-
一定時間が経過したフォルダの削除
-
JavaでCSVファイルを高速に読む...
-
画像アップロード機能を追加し...
-
csvファイルの横方向への改行に...
-
【エクセル】改行無しテキスト...
-
perlのエディタでおすすめを教...
-
フォルダ内のファイルを全て開...
-
PICでFatFsでオープンした内容...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Perlで特定行から特定行までを...
-
perlでcsvファイルを読む(ダブ...
-
CSVデータの編集の際の重複チェ...
-
CSVファイルのデータの行数を取...
-
Perlの初心者です。2重ループ...
-
CSVファイルをperlプログラムで...
-
Perlで空白行を削除
-
MATLAB std::exceptionエラー
-
Argument "\\\\n" isn't numeri...
-
cgiのログの書き方
-
Perlでの重複要素カウントにつ...
-
バッチファイルの作り方(CSV→...
-
awkスクリプトでダブルクォーテ...
-
VBAでCSVファイルの特定行を書...
-
DOSコマンドで、標準出力を出力...
-
ExcelをCSV書き出す場合のシー...
-
openした後、closeしないでプロ...
-
close()で例外が投げられる理由
-
batファイルでrenameができませ...
-
VBAでCSVファイルを途中行まで...
おすすめ情報