• ベストアンサー

perlの%ENVについてです。

ralf124cの回答

  • ベストアンサー
  • ralf124c
  • ベストアンサー率52% (232/446)
回答No.2

OSには環境変数という変数が利用者に対して提供されています  コマンドが入力されたら実行ファイルをどこをどのように探すのかとか  OSの名前は何なのかとか  利用しているユーザーの名前は何なのか といった情報です perlとくにCGI環境などでよく利用されるのは  リモートユーザーのIPアドレス  リモートユーザーのブラウザID といった情報でしょうか %ENVにはそういった情報をperlから参照できるようにあらかじめ用意された変数です 入門書などによくあるサンプルですが foreach(sort keys %ENV){ print "$_: $ENV{$_}\n" } で主要な環境変数の中身を参照できます いちおう主要なと書いたのは、ハッシュのキーを明示しないと状況によっては参照できないものもあります perlよりもOSそのものをユーザーレベルで無く管理者レベルで理解しないと難しい概念ですが、頑張ってください PCのオーナーは自覚さえあれば誰もが管理者なのです

関連するQ&A

  • perlで%ENVを使いCGI

    perlで%ENVを使って環境変数を使いPerlスクリプトを作りwebページで表示したいと考えています。 このようなことをしたい場合はどのような手順でスクリプトを書けばよいのでしょうか? かなりアバウトな質問ですがよろしくお願いします。

    • ベストアンサー
    • Perl
  • Perlで二次配列は可能?

    毎度御世話になっております。 Perlスクリプトで二次配列のような配列の使い方は可能でしょうか? (A*B)種類の変数を配列の形で操作したいと考えています。 A,B共に8~256ぐらいで、処理の途中で増やせる様にしたいのです。 連想配列を用いればそれらしいことが出来るのではないかと思ったのですが、 うまく行きません。どうかお知恵を御貸し下さい。

    • ベストアンサー
    • Perl
  • Perlでの$ENV{REMOTE_ADD}の信ぴょう性を教えてくださ

    Perlでの$ENV{REMOTE_ADD}の信ぴょう性を教えてください。 Perlによる、CGIサイトを運営しています。 IPアドレスを$ENV{REMOTE_ADD}で取得し、Firewall内プライベートアドレス(10.*.*.*)以外はloginをしないと内容が表示されないようにスクリプトをつくり、Firewallの内外から動作確認し、きちんと動いていたのでそのまま運用していました。 ところが、先日海外(ハワイ)に行った際、アップルストアでそのサイトにアクセスした際にloginなしで内容が表示されてしまいました。 アップルストアに置いてあったPCなので、IP偽装などは行っていないと思われますので、どうして見えるのだろうかわかりません。 $ENV{REMOTE_ADD}で取得した値は信ぴょう性がないのでしょうか?それとも、10.*.*.*はグローバルアドレスとして使用可能なのでしょうか?

    • ベストアンサー
    • Perl
  • Perlのサブルーチンで連想配列(ハッシュ)を渡す

    Perlのサブルーチンで連想配列(ハッシュ)を渡す方法 -------------------------------------- $str=rep::replace(%A,$B,@C); -------------------------------------- sub refidrep ( \%\$\@ ){ my(%A,$B,@C)=(@_); } -------------------------------------- では、上手くいきませんでした。 どのようにしたら、連想配列をサブルーチンに渡せるのでしょうか? 分かる方いらっしゃいましたらご教授ください。

    • ベストアンサー
    • Perl
  • シェバング行 envの意味

    perlとは直接関係ありませんが、シェバング行の意味が知りたいです。 #!/usr/bin/env ruby envの無い次のものはrubyを実行するという意味でわかりますが、 上のenvをつける理由が知りたいです。以下では駄目なのでしょうか? #!/usr/bin/ruby

    • ベストアンサー
    • Perl
  • データの受け取り方

    現在Perlを使ってプログラムを組んでいます。 以前までは連想配列を使って、 Formから得たデータを処理してたのですが、 連想配列はPerlだけ(?)だから 連想配列を使わずにやるように言われました。 いろいろ書店などを回り本を読んでみたのですが、 どれも連想配列を使っています。 どうしたらいいのかさっぱりわからないので、 連想配列を使わないやり方を教えてください。

  • perlで変数の中身を変数とみなす方法ってありますか?

    perlで、変数の中身を変数とみなし、その中身を知る方法ってありますか? 具体的に言うと、 $abc = "$xyz"; $xyz = "test"; なる状況だったとして、$abc から "test" という文字列にたどりつく 方法ってあるのでしょうか? 何をしたいのかというと、テキストファイル上に "$xyz" と書かれてたと します。そのテキストファイルを perl で解読したとき、その時点での 実行中の $xyz に何が入っているかを得たいのです。 もちろん、連想配列を使えば似たようなことができるのは知っていますが、 性質上、できればスタティック変数を使いたいのです。 そのような方法は、perl には用意されているのでしょうか?

    • ベストアンサー
    • Perl
  • perlのwhile,連想配列についてです。

    perlの連想配列を使い "AP" => "Apple" "BN" => "Banana" "OG" => "Orange" という値を格納します。 そしてこの格納した値をキーボードからの入力で取り出します。 このように表示したいです↓↓ "好きな果物を入力してください[AP/BN/OG]" そして入力を受けるとその果物の値を返し果物の名前を表示します↓↓ "あなたの好きな果物はAppleですね" ここまではできたのですが、この格納した果物以外を入力するとwhileで格納した果物が入力されるまで"3種類から選んでください”というようにループしたいです。 この場合どのように書けばよいのでしょうか。 whileの場合andで書きたい場合はどのように書けばよいのでしょうか。 また入力には<STDIN>を使い引数はchmopで処理すると良いとアドバイスを貰いましたがchompの使い道がよくわかりません。 そちらも説明していただけると幸いです。 わかりにくい質問ですがよろしくお願いします。

    • ベストアンサー
    • Perl
  • $ENV{'HTTP_COOKIE'}について

    windowsサーバーのcgi(※)にて「$ENV{'HTTP_COOKIE'}」でcookieの値が正常に取得できてましたが、 linuxサーバーにそのソースをそのまま移行し、動作確認したところ「$ENV{'HTTP_COOKIE'}」でcookieの値が取得できなくなってしましました。 (※)・・・ショッピングカートの処理 ちなみにSSLを使用しているページです。 サーバーの環境は以下となります ■windowsサーバー ・OS : Windows 2003 R2 SP2 ・Perl ver : 5.8.7 ■linuxサーバー ・OS : Red Hat Enterprise Linux 4 ・Perl ver : 5.8.8 ・パーミッション : 757 ロジックは変更していないのでおそらくサーバーのどこかの設定を変更しなければならないのではないかと思われますが、どこに手を付けてよいのかがわかりませんので ご教授していただきたいです。 宜しくお願い致します。

    • ベストアンサー
    • Perl
  • Perlの質問です

    Perlですがよくこんなスクリプトがあります。 これは一体何をしているのでしょうか。 my $accept = $env->{HTTP_ACCEPT}; 宜しくお願い致します。

    • ベストアンサー
    • Perl