ここから本文です

とあるperlのソースコードで「my ($GB) = @_;」という記述を見つけたのですが、こ...

thr********さん

2011/1/1021:37:49

とあるperlのソースコードで「my ($GB) = @_;」という記述を見つけたのですが、これはどういう意味なのでしょうか?

$GBという変数に@_という値を代入していると思うのですが、その値がどういう値なのかソースコードを見ても
よく分かりません。
@_という書き方で固有の意味を成すのでしょうか?
アドバイスお願いしますm(_ _)m

閲覧数:
450
回答数:
3

違反報告

ベストアンサーに選ばれた回答

2011/1/1110:40:21

>my ($GB) = @_;」という記述を見つけたのですが、これはどういう意味なのでしょうか?

Perlのソースを全て見れると、ズバリ「こういう意味」といえるのですが。

>@_という値を代入していると思うのですが、その値がどういう値なのか

これは渡された値(@_)の一番目の値を「$GB」に入れています。
渡されたもの値が配列(複数の値がまとめられたもの。1,2,3など)であっても、値(1など)であっても問答無用で一つ目の引数をprintしています。

#!/usr/local/bin/perl

@hairetsu = (1,2,3,4,5);
$hensuu = 1;

print "\"1,2,3,4,5\" => "."\n";
&test(@hairetsu);

print "\"1\" => "."\n";
&test($hensuu);

sub test
{
my ($GB)=@_;
my $GB2=@_;
print "(\$GB) returns \"$GB\""."\n";
print "\$GB2 returns \"$GB2\""."\n\n";
}

この回答は投票によってベストアンサーに選ばれました!

ベストアンサー以外の回答

1〜2件/2件中

並び替え:回答日時の
新しい順
|古い順

2011/1/1106:30:19

($GB)=@_;と$GB=@_;はかなり違いますよー
@a=a..z;$a=@a;print$a;

@a=a..z;($a)=@a;print$a;
でやってみると良く分かると思う

配列変数(@yahoo)の様なものを代入する時に
代入する変数を()で囲むと
($a[0]の値を代入,$a[1]の値を代入,$a[2]の値を...)=@a;
と言う感じになっちゃいます

ali********さん

2011/1/1022:11:10

よくわからないコードを見つけたら「まず試す」こと。何度見直したところでわかるはずがない。

---

&test('a','b','c','d');

sub test
{
my($arg1,$arg2,$arg3) = @_;
printf('%s-%s-%s',$arg1,$arg2,$arg3);
}

この質問につけられたタグ

みんなで作る知恵袋 悩みや疑問、なんでも気軽にきいちゃおう!

Q&Aをキーワードで検索:

Yahoo! JAPANは、回答に記載された内容の信ぴょう性、正確性を保証しておりません。
お客様自身の責任と判断で、ご利用ください。
本文はここまでです このページの先頭へ

「追加する」ボタンを押してください。

閉じる

※知恵コレクションに追加された質問は選択されたID/ニックネームのMy知恵袋で確認できます。

不適切な投稿でないことを報告しました。

閉じる