初歩的な質問で失礼いたします。
下記の記述でプログラムを実行すると正常にプログラムが動きます。(省略以降は全く同一のプログラムです)
■実行問題なし1
#!/usr/local/bin/perl
require 'cgi-lib.pl';
require 'jcode.pl';
--------省略---------------
■実行問題なし2
#!/usr/local/bin/perl
use strict;
use DBI;
--------省略---------------
しかし、下記の記述だとエラーが発生していまいます。
#!/usr/local/bin/perl
use strict;
use DBI;
require 'cgi-lib.pl';
require 'jcode.pl';
--------省略---------------
エラーログは、下記の通りです。
Global symbol "$in" requires explicit package name at search.cgi line 21.
Global symbol "$parameter" requires explicit package name at search.cgi line 23.
Global symbol "$name" requires explicit package name at search.cgi line 23.
Execution of search.cgi aborted due to compilation errors.
requireとuseは同時に記述してはいけないのでしょうか?
同時に記述しないと目的のプログラムを実現する方法が大きく変わってきてしまうので、非常に困ってしまいます。
もし、ご存知の方がいらっしゃったら教えてください。
宜しくお願い致します。
A 回答 (2件)
- 最新から表示
- 回答順に表示
No.2
- 回答日時:
use と requireを同時に使ったのが理由ではありません。
#1の方の回答にある通り、use strict; をはずせばこのエラーは
なくなると思いますが、
use strict;
use DBI;
require 'cgi-lib.pl';
require 'jcode.pl';
なんでCGI.pmとかJcode.pm を使わないのでしょう?
これらを使えばuse strict していても問題ないはずです。
あとは
our $in;
our $parameter;
our $name;
を先頭付近に追加してもいけるかな?
この回答への補足
sakusaker7さん
ご回答ありがとうございました。
確かに、use strict;を外すと、この部分については動作するのですが、DB接続の記述で今度はエラーが発生していまします。その為、下記のようにしてプログラムを実行してみました。
use strict;
use DBI;
require 'cgi-lib.pl';
require 'jcode.pl';
our $in;
our $parameter;
our $name;
our $dbh;
----------省略--------------------
しかし、下記のエラーで実行できませんでした。
Global symbol "$in" requires explicit package name at /web/search.cgi line 7.
Global symbol "$parameter" requires explicit package name at /web/search.cgi line 8.
Global symbol "$name" requires explicit package name at /web/search.cgi line 9.
Global symbol "$dbh" requires explicit package name at /web/search.cgi line 10.
Execution of /web/search.cgi aborted due to compilation errors.
前画面から受け取ったデータの文字列を使い、DB検索をするような事を実現するためには、やはりCGI.pmもしくはJcode.pmを利用しないとダメでしょうか?
質問ばかりですみません。
すみません。私の勘違いでした。
use strict;をコメントアウトすることで
問題解決いたしました。
ご迷惑をおかけしました。
ありがとうございました!
No.1
- 回答日時:
use Strict を外すとどうなりますか?
strict - 安全ではないコンストラクトを制限する Perl プラグマ
http://perldoc.jp/docs/perl/5.8.1/strict.pod
この回答への補足
ありがとうございます。下記のコードにして実行してみました。
#!/usr/local/bin/perl
#use strict;
use DBI;
require 'cgi-lib.pl';
require 'jcode.pl';
$ENV{ORACLE_HOME}='/opt/app/oracle/product/';
$ENV{NLS_LANG} = 'JAPANESE_JAPAN.JA16SJIS';
$ENV{NLS_LANGUAGE} = 'JAPANESE';
my $datasrc = "xxx";
my $username = "BBB";
my $password = "AAA";
my $sql = "SELECT NAME FROM PROFILE";
my $sth = $dbh->prepare($sql) || die $dbh->errstr;
$sth->execute || die $dbh->errstr;
$| = 1;
read STDIN,$in,$ENV{'CONTENT_LENGTH'};
# 文字列を分解
($parameter, $name) = split /=/, $in;
---------------省略-----------------
しかし、エラーが「Can't call method "prepare" on an undefined value at /web/search.cgi line 20.」
と出てしまいました。
前の画面から文字列の受け渡しを行い、その文字列をSQLにセットし、特定のレコードを取得するには、上記のライブラリ構成では難しいでしょうか?
周りに相談する相手もいなくて、初歩的な質問で本当にすみません。
すみません。私の勘違いでした。
use strict;をコメントアウトすることで
問題解決いたしました。
ご迷惑をおかけしました。
ありがとうございました!
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Perl Perl の外部モジュールの利用方法 3 2022/07/10 18:34
- CGI perlで書いたcgiでsqliteの使い方を教えてください 2 2023/05/08 21:29
- Perl perlの構文でカンマの意味が分からない 2 2022/10/30 01:53
- CGI htmlからパラメータで、cgiに渡したい。 1 2023/02/06 16:15
- その他(プログラミング・Web制作) ラズパイ上の、pythonのエラーについて 1 2023/04/12 23:27
- その他(プログラミング・Web制作) Pythonで会員サイトの自動ログイン ID Nameがない 1 2022/12/16 02:09
- UNIX・Linux cronの@rebootでのdateコマンドの実行につきまして 2 2023/06/11 16:23
- JavaScript 初心者です。gulpでコンパイルができないので教えてください! 1 2023/05/17 17:07
- MySQL Mac です。ローカルホストの phpMyAdmin にアクセスできません。 1 2023/06/06 17:14
- UNIX・Linux postfix smtpサーバーリレーがTLSハンドシェーク失敗 1 2022/08/15 15:45
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
perlのrequireの動き方について...
-
セッションファイルが作成でき...
-
Location: で cgi → c...
-
cgiとplとpm
-
useとrequireでエラー
-
IMGタグにaaa.cgiを指定して、...
-
Perlからjavascript構文の出力...
-
use と require の違いが分か...
-
月の第一週とは
-
よくある 『 第○(1・2・3・4・...
-
エクセルで毎月第2週日の水曜日...
-
6月の第2 第4火曜日は何日...
-
週2回のペースって だいたい何...
-
エクセルで相対パスの書き方を...
-
Perl の外部モジュールの利用方法
-
apacheでPerl CGIが作動せず、5...
-
クライアントのIPとマシン名を...
-
[C#]ListView一覧表示時の幅設...
-
指定曜日にMsgBox表示は可能で...
-
[Excel] ある日の曜日が当月の"...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
cgiとplとpm
-
perlのrequireの動き方について...
-
jcode.plが読み込めない
-
Quantifier follows nothing in...
-
require文が実行できない
-
ファイル書込時にPermission de...
-
useとrequireでエラー
-
htmlからテキストを返すperlを...
-
Perlのデバッグ方法って。。。...
-
PDFJが動作しない
-
画像のURLの変数を別のCG...
-
perlのcgiで、変数の中身を表示...
-
perlをインストールしたのに使...
-
CGIの中にinclude
-
perl初心者です
-
プログラムを書き足すことについて
-
gifcat.pl:助言お願い致します
-
バイナリファイルのアップロード
-
phone.plというモジュールを使...
-
さくらレンタルサーバーのライ...
おすすめ情報