• ベストアンサー

”:”がいっぱいの文について。

perl超初心者です(その2)。 use Pg; Pg::connectdb や use Apache::Session::Postgres; Apache::Session::Postgres など :がたくさんついているのは、これは一体なんでしょうか・・・? c言語でいうところの #include <stdio.h> printf(); みたいな関係でしょうか。 web検索するにも適切なキーワードがわからず困っています。 ご存知の方、もしくは、日本語での詳しく解説されているサイトを ご存知の方がいらっしゃいましたら教えてください。 よろしくおねがいいたします。

  • Perl
  • 回答数2
  • ありがとう数1

質問者が選んだベストアンサー

  • ベストアンサー
回答No.1

わたしも perl 初心者です。といっても、ほとんどやってません。 「perl」「コロン」で検索したら、パッケージの区切り子としてダブルコロン(?)を使うみたいですよ。 ---引用(一部編集済)----------------------------------------------------------------- 他のパッケージ空間にある変数やサブルーチンを呼び出す必要があるときは、 パッケージ名とコロン(:)2つを変数名やサブルーチン名の前に付け足します。 たとえば、pkg1 パッケージの $value を参照するには、「$pkg1::value」と なります。  &pkg1:routine(); # pkg1 パッケージの &routine サブルーチンを利用  $pkg1value(); #pkg1 パッケージの $value 変数を利用 パッケージ名なしで2つのコロンを置くと、main パッケージの略称となります。つまり、「$::value」は「$main::value」と同じ意味になります。

参考URL:
http://www.harukaze.net/~mishima/perl/man/perlmod.1.html

その他の回答 (1)

  • misoka
  • ベストアンサー率35% (56/160)
回答No.2

> use Apache::Session::Postgres; これの場合は、 Apache/Session/Postgres.pm がロードされることを意味します。 要するに、ディレクトリの区切りってことです。 > Pg::connectdb の場合は、#1 の方のご回答のとおりですね。

関連するQ&A

  • return文について

    C言語を独学で勉強中です。 最初から分からないのがあったので、質問させていただきます。 #include <stdio.h> main() { printf("Hello World!!\n"); return(0); } return(0)を記入しなくてもエラーはでないのに、 なぜ必要なんですか? 参考書には何も書いてないので分かりません。 よろしくお願いします。

  • PHP + Postgres エラーのハンドリング

    やまとです。 宜しくお願いします。 今、PHP3とPostgres7.2でプログラミングをしています。 ちなみにOSはRedhatLinux7.2です。 PHPから、pg_execでSQL文を実行したり、pg_connectでDBに接続した場合に起きる エラーのハンドリングをしたいのですが出来るのでしょうか? Perlからではやり方は分かったのですが、PHPでのやり方が分かりません。 **************** Perlでのやり方 $db = "testdb"; $conn = Pg::connectdb("$db"); if (PGRES_CONNECTION_OK ne $conn->status){ print "システムエラーです。管理者へお問い合わせください。"; $msg=$conn->errorMessage; print "$msg"; exit; } **************** ↑みたいな感じをPHPでやりたいのですが・・・ ご存知でしたら、ご教授お願いします。

    • ベストアンサー
    • PHP
  • c言語のついて

    c言語で・・・ #include <stdio.h> main() {   printf("こんにちは!"); } というプログラム(適当に作りました)が動きません。 ドコを間違えていますか?

  • perlからDBIを使用したpostgresへの接続でエラー

    perlからDBIを使用して、データベースにアクセスしたいと思っていますが、connectで下記のようなエラーが出力され接続できません。 ↓↓↓↓↓↓apacheのエラーログ↓↓↓↓↓↓↓ DBI connect('dbname=[mscdb]','[postgres]',...) failed: FATAL: database "[mscdb]" does not exist at /web/member/cgi-bin/dbitest.pl line 8 ↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑ mscdbがないとエラーが出力されているように思いますが、mscdbは存在します。どういった原因が考えられるでしょうか? プログラムには以下のように記述しています。 #!/usr/bin/perl use DBI; use constant DBNAME => 'DBI:Pg:dbname=[mscdb]'; use constant DBUSER => '[postgres]'; use constant DBPASS => '[××××]'; DBI->connect( DBNAME, DBUSER, DBPASS, { AutoCommit => 0 }); print "Content-Type: text/plain\n\n"; print $DBI::errstr? $_: 'Done'; 環境は以下の通りです。    perl v5.8.2    postgres v8.1.2 vine linux dbd v1.49

    • ベストアンサー
    • Perl
  • scanfの謎

    C言語の以下のプログラムがありまして、 #include <stdio.h> main() { int i; scanf("%d ", &i);printf("d=%d\n", i); } これを実行すると、 1 2 d=1 のように、入力を2回受け付けてしまいます。 一体なんでこのようなことが起こるのでしょうか?教えてください。

  • データベースにアクセス出来ません。宜しくお願いします。

    こんにちわ。先日postgre8.2をwinXPにダウンロードしました。デpostgresの画面ではデータベースの新規作成が出来るようになっているのですが、パールから作ろうとするとコマンドプロンプトにエラーが出てきます。以下にパールの文とエラーを書きますので、何かチェックする点や設定など確認や文自体の間違いなどお教え下さい。宜しくお願いします。 #!c:/perl/bin/perl use DBD::Pg; use DBI; $dbh=DBI->connect("dbi:Pg:host=localhost;dbname=postgres",'ddd','cc'); $sth=$dbh->prepare($a); my$a=(<<"EOL"); CREATE DATABASE kensaku with encoding='euc_jp' owner=ddd template=postgres tablespace=pg_default; grant all on database kensaku to public; EOL $v=$sth->execute(); $d=$dbh->disconnect; エラー:DBD::Pg::st execute warning: at test.pl line 21. 宜しくお願いします。

    • ベストアンサー
    • Perl
  •  現在、私はC言語を学んでいます。

     現在、私はC言語を学んでいます。  プログラミングの初期の初期の問題なんですが、 「Hello World」という有名なプログラムがありますよね? それについての質問です。 #include<stdio.h> main() { printf("Hello World"); return 0; } も #include<stdio.h> main(void) { printf("Hello World"); return 0; } も #include<stdio.h> int main() { printf("Hello World"); } もちゃんと表示できます。 ここで質問です。 int main(void) int main() main() main(void) はどう違うんですか? あと、 return 0; はあっても無くてもいいようなんですが どういう意味があるんでしょうか?

  • 引数が "%4d"  のとき

    #include<stdio.h> main() { printf( "%4d" ) ; } で実行してみると、実行するたびに結果の値が変化しました。 これはどういうことが起こっているのでしょうか?解説お願いします。

  • C言語初心者です。

    C言語初心者です。 1^2-2^2+3^3-4^2…+99^2-100^2の値を求めるプログラムを作成したいのですが上手くいきません。 どこが足りないのですか? #include <stdio.h> int main(void) { printf("%d", 1^2 - 2^2 + 3^2 - 4^2 … + 99^2 - 100^2); return (0); } よろしくお願いします。

  • Xcodeでのcのコンパイルエラーについて。

    Xcodeでc言語のコンパイル #include <stdio.h> int main(void) { printf("%d", 15 + 37); return(0); } をコンパイルすると ld: 2 duplicate symbols for architecture x86_64 clang: error: linker command failed with exit code 1 (use -v to see invocation) となります。 いろいろ検索してみたのですが、こんな簡単なプログラムのエラーはのっていませんでした。 なにが問題なのでしょうか。 あと use -v ってのもどうやって使うのでしょうか。 よろしくおねがいします。

専門家に質問してみよう