![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?e8efa67)
perlで、URLからサイトが表示されるかを確認するプログラムを作成しました。
ただ現在の方法だと、チェックするデータ件数が多くなるとエラーとなってしまいます。
現在のソース
(ここから)
open(DB,"$memfile") || &error("Open Error : $memfile");
flock DB, 2;
@lines = <DB>;
close(DB);
@new=();
foreach $line (@lines) {
$flag=0;
($num,$url,$title) = split("<>", $line);
&url_ckeck("$url");
$data = "$num<>$url<>$title\n";
$data =~ s/\n<>/<>/g;
$data =~ s/\r\n<>/<>/g;
$data =~ s/\r<>/<>/g;
push(@new,$data);
}
open OUT, "> $memfile";
print OUT @new;
close OUT;
(ここまで)
この方法だと300件を超えると「ページが表示出来ない」エラーがでてしまうので、
チェックの方法を小分けしてエラー回避できないかを考えているのですが、とのようにすれば良いのかがわからず先に進められなくなってしまいました。
プログラムも見よう見真似で作成しているのでおかしな箇所が多々あるかと思いますが、助けていただけないかと思い書き込みました。
「$line (@lines)」を「$start .. $end」として件数を小分けにしてボタンを表示させてクリックして進められるようにしてみたらとも思いましたが
データがうまく更新出来ずにいます。
不明点はご指摘ください。
よろしくお願いいたします。
No.1ベストアンサー
- 回答日時:
> 「ページが表示出来ない」エラー
そんなエラーはPerlそのものにはありません。
例えば、このスクリプトはCGIとして実行されていて、なんかのエラーがあるのでhttpサーバーがエラーコードを返して、それをブラウザが「ページが表示出来ない」とエラー表示している、そんな感じではないでしょうか。
まずは、真のエラーの理由と突き止めるのが先決です。
PCで実行してエラーメッセージを確認する、とか、 use CGI:Carp を使ってエラーメッセージをブラウザに表示させる、とかです。
少なくとも、例示されている部分には、多少変なところはありますが、「300件を越えるとエラーになる」というような箇所はありません。あるとすれば、ここに書いてないもの、例えば url_ckeck とかです。
あとは、変数を宣言しなくても使えるPerlですが、ある程度の規模になると、やはりきちんと宣言して有効範囲を限定させることが、意図しない間違いの防止に繋がります。
use strict; use warnings ;は積極的に使いましょう。
回答ありがとうございます。
今、確認しましたら、エラーとならずに途中で停止する形となりました。
ちゃんとした説明でなく申し訳ございません。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- その他(プログラミング・Web制作) pythonでDBのカラム名で取得したオブジェクトの値を表示したい 1 2022/05/13 03:41
- PHP PHP一覧表示した項目にリンクをはりたい 1 2023/07/12 17:08
- JavaScript 【jquery】EasyUIのSubGridにMySQLのテーブルデータを表示&編集にしたい 5 2022/05/02 13:10
- CGI perlで書いたcgiでsqliteの使い方を教えてください 2 2023/05/08 21:29
- Java javaでのプログラム(配列)について質問です. 2 2022/10/14 22:27
- その他(プログラミング・Web制作) Python - Excel で Webからデータを連続取得したいのですが エラーが出ます 1 2023/07/06 20:08
- CGI htmlからパラメータで、cgiに渡したい。 1 2023/02/06 16:15
- PHP ここでの ②if($su_d<>"")の比較演算子 を使う理由は 1 2022/03/26 02:33
- PHP PHPSpreadsheetによる書き出し時のページネーション方法について 1 2023/03/20 10:35
- C言語・C++・C# pythonのファイルの並びでの読み込みとリストについて 4 2022/04/13 03:52
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
UserForm1.Showでエラーになり...
-
お助けください!VBAのファイル...
-
【VBA】ワークブックを開く時に...
-
VBAでfunctionを利用しようとし...
-
String""から型'Double'への変...
-
文字列内で括弧を使うには
-
ActiveCell.FormulaR1C1の変数
-
Excel vbaについての質問
-
マクロの「SaveAs」でエラーが...
-
実行時エラー'-2147467259(8000...
-
VB.net 重複チェックがしたいです
-
実行時エラー 438 の解決策をお...
-
【VBAエラー】Nextに対するFor...
-
SQL Server + VB の開発において
-
Filter関数を用いた結果、何も...
-
マクロで"#N/A"のエラー行を削...
-
演算子が DBnull 及び integer...
-
ACCESSで値を代入できないとは?
-
フランスの生年月日(jj/mm/aaaa)
-
ApplicationとWorksheetFunctio...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
UserForm1.Showでエラーになり...
-
String""から型'Double'への変...
-
VBAでfunctionを利用しようとし...
-
【VBA】ワークブックを開く時に...
-
マクロで"#N/A"のエラー行を削...
-
文字列内で括弧を使うには
-
実行時エラー 438 の解決策をお...
-
On ErrorでエラーNoが0
-
お助けください!VBAのファイル...
-
VBA データ(特定値)のある最...
-
インポート時のエラー「データ...
-
実行時エラー'-2147467259(8000...
-
ACCESSで値を代入できないとは?
-
VB.net 重複チェックがしたいです
-
ActiveCell.FormulaR1C1の変数
-
ApplicationとWorksheetFunctio...
-
「実行時エラー '3167' レコー...
-
【VB.NET】 パワポ操作を非表示で
-
フランスの生年月日(jj/mm/aaaa)
-
【マクロ】 IFERROR関数をマク...
おすすめ情報