質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Perl

Perlは多目的に使用される実用性が高い動的プログラミング言語のひとつです。

プログラミング言語

プログラミング言語はパソコン上で実行することができるソースコードを記述する為に扱う言語の総称です。

Q&A

4回答

1285閲覧

Perl サブルーチン実行方法

BANDIT1250FABS

総合スコア86

Perl

Perlは多目的に使用される実用性が高い動的プログラミング言語のひとつです。

プログラミング言語

プログラミング言語はパソコン上で実行することができるソースコードを記述する為に扱う言語の総称です。

0グッド

0クリップ

投稿2016/10/26 07:04

Perlモジュール内にあるサブルーチンを呼び出す際、変数内の文字列をサブルーチンとして呼び出す方法ってあるのでしょうか?

Perl

1sub main { 2 my $test = getInfo; 3 my $result = $test; 4} 5 6sub getInfo { 7 return "aaaaaa" 8}

上記の方法だとうまくいかないのは当然なのですが
何かよい方法はございますでしょうか。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答4

0

次でいけます。

my $test = &{'::getInfo'}();

グローバルスコープの場合は ::をつければいいです。

以下追記

元のコードに合わせるなら、こんな感じでしょうか。

sub main { my $test = "::getInfo"; my $result = &{$test}(); } sub getInfo { return "aaaaaa" }

投稿2016/10/26 07:13

編集2016/10/26 08:34
moonphase

総合スコア6621

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

サブルーチンの呼び出し方の方はいろいろありますが、
代入自体は、グロブを使えばいいだけです。

sub main { my $test = *getinfo ; print $test->() . "\n" ; }

投稿2016/10/27 17:38

編集2016/10/27 22:17
bunzaemon

総合スコア118

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

evalを使ってみるとか。

sub main { my $test = "getInfo"; my $result = eval{&$test}; } sub getInfo { return "aaaaaa" }

投稿2016/12/15 09:45

Onoken

総合スコア6

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

勘違いにて削除しました。  

投稿2016/10/26 08:25

編集2016/10/26 08:37
A.Ichi

総合スコア4070

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問