No.9ベストアンサー
- 回答日時:
もう少し易しく解説した方が良かったでしょうか?
ブラウザとPerlの組み合わせで開発を考えている時点でHTTPサーバ抜きに考えることはできません。
HTTPサーバが無い=CGIが使えない=ブラウザではプログラムが動かせない
ということです。
> Http://…/スクリプトファイル.pl を書き込んで実行できると参考書にはあるのですが
そこにはHTTPサーバと「.pl」ファイルをCGIとして理解できる設定が必要という前提条件が書かれていませんか?
いくらなんでもそのまま実行はできませんし、ローカルなファイルはhttp://からじゃなくてC:\などファイルを示す別の文字列からはじまりますよ。
http://云々というのはHTTPサーバがあるという前提条件ということではないでしょうか。
本当に大事な部分をすっ飛ばしてそんなことを書いてある参考書があるとすれば、なにかたちの悪い冗談ではないかと思います(ちょっと面白そうなのでできれば教えてください)。
> クライアント側でサーバーとの通信を制御するPerlスクリプト・ファイルとその画面上のインターフェースをHTMLで作ればできるはずですよね
ブラウザがHTMLからローカルのアプリを自由に動かせる仕組みってやばいでしょ
HTMLからFORMATコマンド起動してハードディスクをきれいさっぱり無くさせるなんてことができたら・・・。
そういうブラウザ自体作って作れないことは無いでしょうけど存在はしていないかと思います。
まぁWindowsOSでIE限定なら、VBScript+ActiveXからWindowsアプリを条件付で動作させることは可能でしょうけどHTMLじゃ無理です。
> Web上の特定のデータベースサーバーと会話的な通信を行うためのperlスクリプトファイルを作るには
WebサーバとDBサーバは別物です。
HTTP上のということはWeb(HTTP)サーバを介すという点でご質問の趣旨から外れてしまうでしょう。
HTTPサーバを介さないでDBサーバと直接通信を行い尚且つブラウザでコントロールしたいならWindowsであればODBC(JDBC)ドライバとJava(Applet)を駆使する以外に無いでしょう。
HTTPサーバを介すなら、そのHTTPサーバに直接CGIをアップして実行させればクライアント側にHTTPサーバをたてなくて済むでしょう。
さらに、実はHTTPサーバの結果のテキストデータにのみ用があってということなら・・・やっぱりPerlだけじゃ・・・
あとは、スケジュールタスクとかでPerlを動かせて取得した結果をHTMLで整形してローカルのファイルに吐き出して、それをブラウザで見るようにするとか位でしょうか。
長々とすいませんでした。
この回答への補足
「参考書」は「Perlテクニックブック」ミューテック著C&R出版です。「URLにcgiファイル名を指定して実行できる」という記述はその37ページにあります。この本の前書きに動作確認確認環境は Linux 9, Perl5, データベースPostgreSQL7とあります。 私のOS環境はWindowsNTです。
補足日時:2009/09/23 01:25詳しいく、説明していただき、勉強の方向を掴めました。
ネットワーク・プログラミングの勉強の前にPerlの基礎的な知識が不足していることがわかってきました。
初心者の愚問に親切にご回答くださり、ありがとうございました。
No.14
- 回答日時:
> 「クライアントはサーバの機能もなければならない」という不可解な前提を「動作試験段階では」ということで理解
この文面だけだと誤解をされているように思えるのですが
問題点は
ブラウザをプラットフォームとしてプログラムを実行させることが「サーバを必要」
とさせているのです。
ブラウザにはそんな機能が無いので、HTTPサーバ側でCGIというインターフェースでもってそれを補っているのです。
基本的にブラウザはその名の通りブラウズの機能しかないのです。
動作試験だろうが本番稼動だろうが、質問者様の機能を前提にすると、CGIを実装するHTTPサーバアプリがそこに必要となります。
前回答者さんのおっしゃるようにクライアント・サーバというのはサービス形態上での立場を表す便宜上での言葉でしか有りません。
インターネットでは接続されているすべての端末を一律「HOST」といいます。決してサーバとかクライアントという言い方はしません。
数あるインターネットのサービス、例えばWebサービスという狭義の範囲において、閲覧するHOSTを便宜上クライアントと呼び、コンテンツを提供するHOSTをHTTP(Web)のサーバと呼ぶのです。
もうご存知かもしれませんが、GoogleがGearsというブラウザ用プラグインで、オフライン状態のローカルSQLiteをまわせるモノを提供してます。
詳細は使ったことが無いのでよくわかりませんが何かの参考になるかも・・・。
わかり易いご回答に感謝申し上げます。沢山の方々がわざわざ回答の時間を割いてくださって驚いています。Google Gearsを覗いてみました。浅い理解しかできていませんが、近未来の汎用パソコン・ソフトの原型がこれなのでしょうね。
No.13
- 回答日時:
解決された様ですが、ちょっと参考情報を。
サーバーとかクライアントとか言うのは、本当はコンピュータの種類ではありません。
http://ja.wikipedia.org/wiki/%E3%82%AF%E3%83%A9% …
何らかのサービスを要求するのがクライアントです。
クライアントの要求に答える形で、そのサービスを提供するのがサーバーです。
つまり、サーバーとかクライアントとかはソフトウェアの種類なのです。
例えば InternetExplorer はWebクライアントソフトウェアです。 ユーザーの操作に従い、HTTPプロトコルで要求を送出します。 送出の宛先は Webサーバーソフトウェアです。
Webサーバーソフトウェアには Apache とか IIS とかがあって、クライアントの要求に応えてファイル内容等を返送します。
WebサーバーソフトウェアはWebクライアントソフトウェアと違うコンピュータで動いている事が多いのですが、開発環境等では同じである事も珍しくありません。 要求を受けてサービスを提供するコンピュータにはサーバーソフトウェアが必要なのですから。
「サーバー」という用語をコンピュータの種類と考えた方が便利な局面はあるかも知れませんが、今回の話題には違和感の元でしょうね。
余計なお世話だったら、すみません。
「余計な」などとはとんでもない。わかり易いご回答をありがとうございました。
「何をしたいのかわからない質問」をしてしまったわけですが、動機は、ある公的機関のデータベース利用を申請し、許可されたのですが、そのデータベースとの通信インターフェースを自分用に便利に構築したいと考えた次第です。ホームページ用CGIを作れる程度の知識ではPerlのごく初歩しか理解していないことが、わかってきました。
No.12
- 回答日時:
やりたい事は、以下で合ってますか?
要求1 自作のPerlスクリプトを、手元のマシンの CPU で実行させる。
要求2 その起動は、Webブラウザで http://○○/△△/××.pl を開く。
その為には、手元のマシンでWebサーバーを動かす事が必須です。 それが目的で無くとも、手段として必要という事です。
Webサーバーを動かせないなら、要求のいずれかを諦めないと無理かと。
ありがとうございます。
おかげさまで「クライアントはサーバの機能もなければならない」という不可解な前提を「動作試験段階では」ということで理解できました。
No.11
- 回答日時:
書評を見る限りではそんなに悪い本ではなさそうですが、Perlの文字列処理など機能面にスポットを当てすぎて動作環境についての記述が必要最小限になっていると見ました。
前の方が回答してくださっているように、書籍内容の話が前後していて前提条件を見落としている可能性が高いです。ブラウザはOSではないので通常のブラウザ内部でWindowsのアプリケーションソフトが動作しない(IE+Officeは例外→Opera+Officeはだめでしょう?)のと同様で直接実行は不可能です。
ブラウザからのHTML表示が前提条件であるなら、解決策として手っ取り早いのはWebサーバをローカルに構築するより手はないでしょう。 他の回避策は環境そのものをプログラミングするためあまりに手間がかかりすぎるかと思います。
No.10
- 回答日時:
>「参考書」は「Perlテクニックブック」ミューテック著C&R出版です。
>「URLにcgiファイル名を指定して実行できる」という記述はその37ページ
> にあります。
Perl テクニックブックの p.38に、「スクリプトを実行できる Web サーバ
が必要になります。云々」と書いてありませんか?
もう既に回答は出つくしているようですので、レスポンスは不要です。
ありがとうございます。
ご指摘のとおりの記述がありました。落ち着いてその後のページも読んでいれば、皆さんを煩わせることもなかったということでしょうか。
Perlをマスタする自信をなくして、少々パニクッてしまったようです。
ご容赦願います m(_ _)m
No.8
- 回答日時:
> 自前サーバーを立ち上げるのが目的ではなく、Web上の特定の
> データベースサーバーと会話的な通信を行う方法をperlで
> 作ろうとしている次第です。
Webサーバ上のデータベースサーバと直接通信するような perl
プロクラムを作ろうとしているのでしたら、DBI モジュールの
勉強をしてください。
Webサーバ上の perl CGI をインターフェースにして、データベース
を操作するようなプログラムを作ろうとしているのでしたら、
LWP モジュールの勉強をしましょう。
どちらも Google 等で perl DBI や perl LWP で検索すると
参考となる記事がたくさん見つかります。
ところで
> ブラウザのURLにHttp://…/スクリプトファイル.pl を書き込んで
> 実行できると参考書にはある
とのことですが、ウェブサーバ上の CGI を作るための参考書を
読んでいるんじゃないですか。どんな環境が必要かきっと書かれて
いると思うので、もう一度 読み直してみてはいかがでしょうか。
No.6
- 回答日時:
私もまだ初心者の域ですので間違ったアドバイスをしていたらごめんなさい。
WWWサーバーのないWindowsマシンなら、AN HTTPDで簡便なサーバーが構築できます。
詳細は以下サイトに載っています。
自宅マシンWWWサーバ化計画
http://www.kent-web.com/www/index.html
参考URL:http://www.kent-web.com/www/index.html
ご回答ありがとうございます。
自前サーバーを立ち上げるのが目的ではなく、Web上の特定のデータベースサーバーと会話的な通信を行う方法をperlで作ろうとしている次第です。私の知識レベルが低すぎて、質問の仕方が悪いのかもしれません。ご親切な回答に感謝申し上げます。
No.5
- 回答日時:
「サーバマシンとは別のPerlエンジンだけをインストールしたクライアントマシン上で」CGI のデバッグや動作確認をする為には、そのクライアントマシンにも本番サーバーと同じ Apache か何かをインストールするのが結局は早道だと思います。
それ以外の方法も確かにありますが、制約が多く理解度が深くないと使い物にならないです。
# クライアントマシンのApache設定で苦労する方は、Apache無での CGIデバッグにはもっと苦労するでしょう。
この回答への補足
ApacheとPerlでCGIを作り、プロバイダのWebサーバーにアップロードすることには成功しています。今回の質問は、そのようなCGIの開発ではなく、Web上の特定のデータベースサーバーと会話的な通信を行うためのperlスクリプトファイルを作るには、どのような開発環境を整えればいいのかという質問です。サーバーにアップロードするのではない、クライアント側でサーバーとの通信を制御するPerlスクリプト・ファイルとその画面上のインターフェースをHTMLで作ればできるはずですよね?
補足日時:2009/09/19 02:13お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Perl perlをバージョンアップしたら、今まで正常に動いていたプログラムが、エラーになってしまった 3 2022/10/05 15:44
- MySQL 「掲示板のログイン画面」はPHP~MySQLに「データベース認証のシステム」方式です。 1 2022/09/27 05:00
- Ameba(アメーバブログ) アメブロは、HTMLのタグの入力を許さないブログ・サイトですか? 1 2023/06/18 18:48
- ホームページ作成・プログラミング アメーバ・ブログは"HTMLタグ"を許可してないのですか? 2 2023/06/17 21:08
- ASP・SaaS イントラネットを構築したい 2 2022/04/24 11:08
- Microsoft ASP C#からvbsを実行したい 5 2022/11/24 17:31
- その他(プログラミング・Web制作) awkのtoupper() 1 2022/10/21 20:39
- サーバー Webサイト構築フリーランスの案件受注について 1 2022/03/27 18:16
- PHP どうして送信されないのでしょうか? 1 2022/12/09 05:23
- その他(プログラミング・Web制作) Pythonで、データファイルと列名ファイルを1つのファイルにしたいです。 1 2023/07/27 20:29
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Cからシェルを起動し返り値をハ...
-
UWSCのスクリプトにラグが発生...
-
Perlのライセンス
-
Excel VBA 『Call』で呼び出す...
-
Excel VBA 定義されたプロージ...
-
「デバイスは PRN を初期化でき...
-
VBA This Workbookモジュール...
-
Excel VBAでリンク切れをチェッ...
-
VBAでoutlook365が起動しません。
-
Excel VBAで、ユーザーフォーム...
-
VBAで別モジュールへの変数の受...
-
COBOLで、Shellを起動するには?
-
エクセルVBAでシートモジュール...
-
perlをバージョンアップしたら...
-
例外処理のフローチャートの記...
-
VBでグローバル変数を宣言するには
-
現在アクティブなフォーム名を...
-
初心者です・・ppmを入力すると...
-
モジュールとクラスの違いって...
-
【vba】フォームに書いてあ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Cからシェルを起動し返り値をハ...
-
"JScript"が見つかりません!
-
Perlスクリプトで文字化けして...
-
awkの処理速度を改善したい
-
powershellで関数名を変更する...
-
pythonスクリプトの停止方法に...
-
cygwinでcshが認識されず困って...
-
UWSCのスクリプトにラグが発生...
-
VBSを利用して、IEのタブを自動...
-
Perlのライセンス
-
シェルでsyntax errorがでてしまう
-
ADサーバにおけるログインID,PC...
-
VBScriptでCurrentDirectoryを...
-
VBSで自動ログインについて
-
CシェルプログラミングをCygwinで?
-
perl起動方法
-
vbs: オブジェクトがコレクショ...
-
perlスクリプトのブラウザURLか...
-
Net-SNMPのPerlモジュールでTra...
-
ディスクの空き容量を求める(W...
おすすめ情報