No.908814の質問と類似しています。
source.plとdest.plという2つのソースがあったときに、
source.pl側では複数個の引数と共にdest.plを呼び出します。dest.pl側で引数を受け取り、その値を変更します。
変更した引数を再度、source.pl側で利用するというようなことを行いたいです。
Cでいう関数の引数にポインタを渡して、受け側で値を変更するようなイメージです。
条件として戻り値は正常/異常のstatusに利用することと、
dest.plはサブルーチンにはしないということがあります。
ご回答、よろしくお願いします。
-------------------------○ source.pl
my $arg = 1;
$argを引数にしてdest.plの呼び出し
・
・
dest.plで変更された$argを使用
-------------------------○ dest.pl
$argを受け取り、値を変更する。
いくつかの print "";
・
・
$argを戻す。
No.908814で回答を頂いていますが、
違うのは、dest.plでのprint文はまま標準出力として表示し、
最後に結果だけを戻すというように処理したいのです。
A 回答 (3件)
- 最新から表示
- 回答順に表示
No.3
- 回答日時:
「参照渡し」のことでしょうか?
例:
@x=(1, 5, -2, 8);
&change(*x);
foreach(@x){ print "$_\n"; }
# 配列の値をそれぞれ2乗にする関数
sub change{
local (*arg) = @_; # my ではダメ。
my $i;
# 値を2乗する
for($i=0; $i<=$#arg; $i++){ $arg[$i]**=2; }
}
下のURLも参考にして下さい。
参考URL:http://tohoho.wakusei.ne.jp/wwwperl1.htm#CallByRef
No.1
- 回答日時:
最初の大元の呼び出しのときに
my $arg
で呼び出すとローカルの変数になるので、
my はつけないで呼び出せば普通にグローバル変数として使用できます。
あとは なんとか.plを呼び出して変数の値を変更すればそのままその変更された値で変数を使用できるかと思います。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- 法学 法律の事を勉強し始めて数日なのですが、少しこんがらがってます。 PL法で、例えばヘアドライヤーを使用 1 2022/10/09 22:38
- JavaScript カラーミーショップのsectionループ内で、[引数][戻り値]ありの関数的な処理を行いたいです。 1 2022/05/07 19:39
- 風邪・熱 朝、PL顆粒を服用しました。 夜、パブロン飲んでもいいでしょうか? PL顆粒は、だるくなりますか? 1 2022/08/27 15:04
- 簿記検定・漢字検定・秘書検定 簿記3級の問題についてです。大問3の精算表の問題なのですが未払い消費税から下の科目を貸借対照表に書く 1 2023/03/02 13:48
- 関西 夏の甲子園が嫌です... 3 2022/08/04 17:16
- Ruby プログラミング 3 2023/06/09 14:30
- その他(プログラミング・Web制作) pythonのプログラムについての質問です。 1 2023/05/26 10:31
- C言語・C++・C# C言語初心者 ポインタについて、お助けください、、 2 2023/03/15 23:50
- テクノ・ハウス フリーBGMのどの曲か分かりません 1 2022/05/16 17:28
- 宗教学 PL教はカルトの部類に入りますか? 毎月の教会費の他に褒賞と言うお布施を半強制的 月に五千円以上払い 5 2022/07/14 13:15
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
perlでファイルの拡張子を除い...
-
非共通要素を抜き出す
-
プログラミングについて。 1つ...
-
文字列を変数名として扱う方法
-
どなたかこのプログラミングを...
-
ネットワークループとルーティ...
-
VBAでの一時停止と再開の方法
-
画面を強制的に再描画させる方法
-
二次元配列のインデックスについて
-
イベントの発生を待つ
-
UWSCの終了の仕方
-
Strawberry Perl for Windows ...
-
多重ループの抜けだし方
-
Perlで<select multiple>の複数...
-
ハッシュ検索はなぜ速い
-
*(アスタリスク)の意味
-
【VBA】指定の範囲から特定の文...
-
チェックデジットについて
-
VBA横データを縦にしたいです
-
DOSコマンドのループ内のTIMEコ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
データベースから取得したデー...
-
perlで2つの配列を比較する方...
-
DBIを使ってのデータの取り出し...
-
python質問
-
perlでファイルの拡張子を除い...
-
アルファベットn文字の組み合わ...
-
grep関数を用いた複数行からの抽出
-
乱数と順列と組み合わせ
-
半角文字の縦書き表示
-
配列やハッシュで中身が同じか...
-
ループ中でのmy宣言と処理速度
-
桁数指定と四捨五入
-
画面を強制的に再描画させる方法
-
VBAで3秒だけ時間を止めたい
-
VBAでの一時停止と再開の方法
-
VBのReturnの使い方
-
どなたかこのプログラミングを...
-
Escキーを押すと、中断する時と...
-
UWSCの終了の仕方
-
エクセルの当番表を作っていま...
おすすめ情報