Perlで
$ren{satou} = "25";
↓
$ren{satou} = "44";
にする処理をsubで書きます。
%ren = ( "suzuki","30","satou","25","tanaka","50" );
sub func {
$ren{satou} = "44";
}
&func;
これを、%renを渡してsub内で書換えるように変更します。
そのためにはどのようにすればよいですか?
sub main {
local %ren = ("suzuki","30","satou","25","tanaka","50");
&func(%ren);
print "Test ".$ren{satou}." Test";########「Test 44 Test」
}
sub func {
@_?
@_?{satou} = "44";
}
&main;
@_?のところをどう変更すればよいか教えてください。
連想配列を渡しています。
考え方ではなくて、この場合のソースを教えてください。
No.1ベストアンサー
- 回答日時:
もし、お使いの Perl がバージョン 4 なら、
&func(%ren);
を
&func(*ren);
に変更し、func の方を
sub func {
local (*hash) = @_;
$hash{satou} = "44";
}
とします。
Perl 5 の場合、前述のコードでもできますが、普通は次のように my とリファレンスを使用します。
&func(%ren);
を
&func(\%ren);
に変更し、func は
sub func {
my ($hashref) = @_;
$hashref->{satou} = "44";
}
とします。
Perlはたぶん5だと思いますが、
&func(*ren);と&func(\%ren);の違いに関係なく、
local (*hash) = @_; $hash{satou} = "44";
も
my ($hashref) = @_; $hashref->{satou} = "44";
も成功しました。
ありがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- その他(ソフトウェア) コマンドプロンプトについて教えてください。 状況: 画像編集ソフト上でネットから保存した画像を使うの 3 2022/05/26 11:14
- Visual Basic(VBA) VBA ユーザーフォームからSubプロージャ―に値を引き渡す方法 3 2023/04/09 01:54
- その他(プログラミング・Web制作) ファイル名の一部をbatで変更したい batファイルを使って、以下のようにファイル名の一部を変更した 3 2023/02/21 20:09
- 野球 野球迷コンビの話 2 2022/08/23 11:22
- C言語・C++・C# Cのオブジェクトファイルの逆アセンブル 5 2023/05/13 01:51
- Visual Basic(VBA) 【追加】ファイルを閉じてダイアログで保存した時だけ処理の実行をする 3 2022/03/23 15:43
- Visual Basic(VBA) マクロについて教えてください。 4 2023/06/06 09:06
- Visual Basic(VBA) VBAでfunctionを利用しようとしたときに「引数は省略できません」というエラーが出ます 1 2022/10/15 16:30
- その他(悩み相談・人生相談) はじめまして。つまらない質問ですが、私の氏は佐藤ですがアルファベットにしますと、SATOなのか、SA 8 2023/03/04 11:21
- Excel(エクセル) 複数のブックをひとつのブック(複数のシートにまとめる)場合にシートとの順番について 5 2022/12/28 20:47
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
CLispのloop内の挙動について
-
Pythonのプログラミングの質問...
-
Application.ScreenUpdating = ...
-
パイソンのクラスについて
-
Pythonでターミナルに文字を出...
-
どちのほうがすきですか?
-
パイソンのクラスのブログラム
-
パイソンのクラスについて
-
パイソンプログラミング
-
【メモリ不足で落ちる(python)】
-
パソコン → パャRン
-
vscode 文字化け
-
[python] 文字列を変数名として...
-
メモリをアドレスを直接指定し...
-
JSONで文字列が長い時
-
実行時エラー 3020の対策
-
<SELECT>タグの折り返し
-
c++の構造体について
-
int(input("○○"))の使い方
-
テキスト入力後、エンターを押...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Perlで複数の値を返す良い方法...
-
HASH(0xほげほげ)
-
プロトタイプ宣言のワーニング...
-
Pythonのプログラミングの質問...
-
Net::SSH::Perlについて
-
perlのスクリプトどこが間違っ...
-
print <<"_HTML_"の中でサブル...
-
内部処理形式が日付型 (Date) ...
-
Perlで use strict して our変数
-
変数に値を代入するのに、まずu...
-
Perlで足し算をするには
-
連想配列とforeach
-
Perl:計算誤差について
-
icmp socket error
-
Perlで自分自身の関数名を知る...
-
PERLの「!=」と「=~」 or...
-
[perl] next と return 同じ意...
-
for文の中でのforeachの問題
-
PerlでCabochaを呼び出すには(...
-
Net::Telnetでタイムアウト時間...
おすすめ情報