変数の中に変数を入れる方法とエラーの解決法

このQ&Aのポイント
  • 変数の中に変数を入れる方法を知りたいです。また、その方法でエラーが発生した場合の解決法も教えてください。
  • 変数の中の変数を使用する方法について質問です。具体的には、$ENV{SOLARWEB_DBUSER_${str_ServerName}}; という書き方で変数を取得しようとしていますが、エラーメッセージが表示されます。
  • 変数の中に変数を入れる方法について教えてください。具体的なコードは、$ENV{SOLARWEB_DBUSER_${str_ServerName}}; です。この部分でエラーが発生します。
回答を見る
  • ベストアンサー

変数の中に変数をいれる。

変数の中に変数を入れるのって可能ですか? $ENV{SOLARWEB_DBUSER} = $ENV{SOLARWEB_DBUSER_${str_ServerName}}; ${str_ServerName} = "MERCURY99"; $ENV{SOLARWEB_DBUSER_MERCURY99} = "solarweb"; ゆえに最終的んい取得したいのはsolarwebなのですが、次のエラーメッセージが出てきて困っています。 そもそも、変数の中の変数は可能なのか? 定義の仕方${}が間違っているのか。 ご存知の方がいらっしゃったら助けてください。 Can't locate object method "SOLARWEB_DBUSER_" via package "TKASE125DEV1" at /home/sb/solarweb/cgi-bin/lib/Common.pm line 199. 199行は$ENV{SOLARWEB_DBUSER} = $ENV{SOLARWEB_DBUSER_${str_ServerName}}; です。

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

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

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

$ENV{SOLARWEB_DBUSER} = $ENV{"SOLARWEB_DBUSER_${str_ServerName}"}; とダブルクオーテーションでくくってはだめですか?

manami921
質問者

お礼

ありがとうございます!! こんなに簡単なことだったんですね! 助かりました!

関連するQ&A

  • Movable Typeのプラグイン「StyleCatcher」のエラーについて

    Can't locate object method "translate_templatized" via package "MT::Plugin::StyleCatcher" at lib/StyleCatcher.pm line 52. 上記のようなエラー表示がでました。 対処法を教えてください。 バージョンは下記です。 ------------------------------------ Movable Type 3.2-ja StyleCatcher バージョン 1.1-dev ------------------------------------ いろいろ調べたのですが、対処法が見つかりませんでした。 「StyleCatcher」のインストールはマニュアル通りに行ったので、ディレクトリ等の間違いはないと思うのですが、誠にお手数ですが、どなたかご存知の方いらっしゃれば宜しくお願いします。

  • 関数が使えない

    関数が使えない状態になっており、困っています。 メッセージは下記が出ています。 Can't locate object method "%s" via package "%s" そのパッケージにも、基底クラスにも、該当のメソッドが定義されていないとうことのようですが、 使おうとしている関数が所属しているパッケージを、しっかりとuse しています。 また、「perlobj manpage」というページに情報があるらしいというのを情報として得たのですが、↓ http://fleur.hio.jp/perldoc/mix/pod/perlobj.html 「Can't locate object method」ということに関係している箇所みつからず、また、ここに書かれている内容は難しく情報があまり得られませんでした。 宜しくお願いいたします。

    • ベストアンサー
    • Perl
  • MovableType4.25でスタイルでエラーが出ます

    Movable Type4.25を使用してます。 スタイルメニューを選ぶと、以下のようなエラーが出てしまいます。 Can't locate object method "delimiter" via package "JSON" 解決方法ご存知の方お願いたします。 アップロードミスかと思い、mt-staticを再アップロードしても 変化ありません。 サーバーはheteml(ヘテムル) 独自ドメインを使用してます。 当方OSはXPです。

  • MovableType4.2の管理画面が開きません(悲)

    Mysqlをインストールしてから、mt.cgi をブラウザから実行すると下記のエラーがでて、movabletypeの管理画面に入れません。 原因がわからず困っております。何卒、知恵をお貸しください。 Got an error: Can't locate object method "install_properties" via package "MT::Tag" (perhaps you forgot to load "MT::Tag"?)

  • URI.pmの使い方を教えてくださいm(__)m

    URI.pmのメソッドが失敗します。 #!/usr/bin/perl -w use URI; print(new URI("www.yahoo.co.jp")->host, "\n"); これを実行すると Can't locate object method "host" via package "URI::_generic" at ./try line 3. となります。 メソッド名が変わったのでしょうか。 私の本では確かにhostとなっているのです。

    • ベストアンサー
    • Perl
  • Perlからchasenの使い方

    windowsで茶筅を使って形態素解析を行いたいのですがエラーが出てうまくいきません。 ■プログラム(cha.pl) #!/usr/bin/perl -w use Text::ChaSen; $value = '私はとても学校が嫌い。'; $res = Text::ChaSen::getopt_argv('cha.pl','-j'); $str = Text::ChaSen::sparse_tostr($value); print "$str"; exit; ■エラー Can't locate loadable object for module Text::ChaSen in @INC (@INC contains: C:/Perl/lib C:/Perl/site/lib .) at cha.pl line 3 Compilation failed in require at cha.pl line 3. BEGIN failed--compilation aborted at cha.pl line 3. もし良かったらアドバイスお願いします。 Makefile.plのWriteMakefileには 'LD' => 'c++' を追加しました。

    • ベストアンサー
    • Perl
  • sledgeのセットアップ

    主題の件で質問です。cpanモジュールのロードエラーが度々発生し足りないモジュールを足しながら対処してきたのですが、下記のエラーの大元が分かりません。 Premature end of script headers: index.cgi Subroutine Sledge::Registrar::context redefined at Sledge/Pages/Base.pm line 79. No such file or directory at HelloWorld/Config.pm line 11. Can't locate object method "new" via package "Template" (perhaps you forgot to load "Template"?) at C:/xampp/Sledge-1.11/lib/Sledge/Template/TT.pm line 51. エラーは、apacheのerror.logです。

  • Movable Type 4.1 で既定のCaptchaプロバイダが使えない。

    Movable Type 4.1 の無償ライセンス版を使っています。 自宅のLinuxサーバにインストールして使用しているのですが、 既定のCaptchaプロバイダを設定しても、Captcha画像が表示されません。 表示されるべき画像を直接ブラウザで開くと、本質問下部のエラーメッセージが表示されます。 何か Perl モジュールが足りていないのでしょうか? そのBlogは以下です。 http://www.hyk-home.com/blog/infra/ どうか宜しくお願い致します。 ------------------------ Can't locate object method "Blur" via package "Exception 415: Postscript delegate failed `/tmp/magick-XXUKVHXm'" (perhaps you forgot to load "Exception 415: Postscript delegate failed `/tmp/magick-XXUKVHXm'"?) at lib/MT/Util/Captcha.pm line 162. ------------------------

  • MeCab(和布蕪)をPerlで使うには

    MeCabをPerlから使おうと思い、MeCab本体であるmecab-0.93.exeと mecab-perl-0.93.tar.gzをダウンロードしました。 mecab-perl-0.93ディレクトリにあるtest.plをWindowsのコマンドプロンプトにて実行してみたのですが、エラーがでてしまいます。プログラムとエラーは以下の通りです。どういったエラーなのか良く分かりません。アドバイスお願いします。 <プログラム> #!c:/perl/bin/perl use lib $ENV{PWD} . "/blib/lib"; use lib $ENV{PWD} . "/blib/arch"; use MeCab; print $MeCab::VERSION, "\n"; my $sentence = "太郎はこの本を二郎を見た女性に渡した。"; my $c = new MeCab::Tagger (join " ", @ARGV); print $c->parse($sentence); for (my $m = $c->parseToNode ($sentence); $m; $m = $m->{next}) { printf ("%s\t%s\n", $m->{surface}, $m->{feature}); } <エラー内容> % test.pl Can't locate loadable object for module MeCab in @INC (@INC contains: /blib/arch /blib/lib C:/Perl/lib C:/Perl/site/lib .) at MeCab.pm line 8 Compilation failed in require at C:\Program Files\MeCab\mecab-perl-0.93\test.pl line5 BEGIN failes--compilation aborted at C:\Program Files\MeCab\mecab-perl-0.93\test.pl line5 以上です。

  • ムーバブルタイプのサーバ引越し中のエラー

    ムーバブルタイプでブログを運営している初心者です。 サーバ容量が一杯になってきたので、データを新しいサーバに移行しています。サクラの300MB(旧)から3GB(新)に引越しするため、現在両方借りている状態です。 FFFTPで旧サーバにあるデータを新サーバにコピーしました。その後cgiの属性を「実行」に変更。独自ドメインを使用しているので、サクラのコントロールパネルで旧サーバの独自ドメインを削除し(初期ドメインに戻し)、新サーバに独自ドメインを追加しました。 すると・・。 独自ドメインでブログはちゃんと表示されましたが、ログインしようとして管理画面の「ログイン」をクリックすると「エラーが発生しました: Can't locate object method "fetch" via ackage "CGI::Cookie" at lib/MT/App.pm line 571」と出ます。 App.pmの571行目は↓このあたりです。 sub cookies { my $app = shift; unless ($app->{cookies}) { my $class = $ENV{MOD_PERL} ? 'Apache::Cookie' : 'CGI::Cookie'; eval "use $class;"; $app->{cookies} = $class->fetch;  ←←←571行目 } return wantarray ? %{ $app->{cookies} } : $app->{cookies} if $app->{cookies}; ムーバブルタイプ自体を移動させちゃダメってことでしょうか? どうすればいいのでしょう??? さっぱり分からないので、もし分かったら教えてください。 よろしくお願いします。

専門家に質問してみよう