• ベストアンサー

Perl 配列の質問です

@a=("One","Two","Three"); リスト("One","Two","Three")を配列@aに代入する。 $a[0]=1; 配列の要素$a[0] 上記は配列の要素でいいのでしょうか、もしくは変数$a[0]ということになるのでしょうか。

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

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

  • ベストアンサー
  • pipipi523
  • ベストアンサー率40% (148/365)
回答No.1

変数$a[0]は配列@aの要素です @a=("One","Two","Three"); print $a[0].$a[2]."\n"; これは、 OneThree と、表示されます

関連するQ&A

  • Perl 配列に関しての質問です

    @a=("a","b","c"); リスト("a","b","c")を配列@aに代入する。 print $a[0]; 添え字が0ということはリストの中の1番目を表しそれを表示する。 としてみたのですが、@aを配列と呼べるのでしょうか、aのみを配列と呼ぶのでしょうか。 又、下部の訳はあっていますでしょうか。 宜しくお願い致します。

    • ベストアンサー
    • Perl
  • リストの最後の要素がリストリテラルの値になる?

    上級ウィザードを目指してプログラミングPerlを読んでいます! 53ページのリスト値の説明によると スカラーコンテキストでは、リストの最後の要素の値がリストリテラルの値になる。 とあり $stuff = ("one", "two", "three"); では、threeだけが変数$stuffに代入される。 とあります。 しかし、このコードを実際に試してみると $stuffにはoneが代入されました。 この本の記述が誤っているのでしょうか。 それとも私のやり方が何か間違っているのでしょうか。 誰か教えてください。

    • ベストアンサー
    • Perl
  • Perl 配列の質問です

    @a=(); 配列@aに空を代入する。 print $#a+1."\n"; 配列名aの前に$#があるので要素の添え字の最大値がくるが空なので-1がかわりに入り-1+1で0となり改行が入る。 @a[5]=10; ここの訳がわかりません。 @a[5]とはどのように読むのでしょうか。 意味はどのような意味になるのでしょうか。

    • ベストアンサー
    • Perl
  • 配列の中に配列をセットし、呼び出したい

    配列@listの要素として@pickupの配列をセットしたいと思っています。 ループ文の中で繰り返し、$countというループの回数をカウントしている変数によってセットする場所を変えていきたいのです。 for($count=0;$count>100;$count++){ (中略しますが、ファイルを読み込み正規表現で値を吸い出しています) @pickup=("$1","$2","$3");#@pickupはループごとに中身が変わります。 @list[$count] = @pickup;#ここで@listの要素として@pickupをセット } 上記のように記述したとします。 print $list[80];とすると、@pickupの[0]の要素しか表示しません。 print @list[80];としても上に同じ。 質問1.どうやったら@list[$count]で配列の要素に配列を入れられますか? 質問2.その後どうやって配列の中の配列の要素を取り出せますか? イメージとしては@listの50番目の要素@pickupの0番目もしくは1番目の要素を取り出したいという感じです。

    • ベストアンサー
    • Perl
  • 【Perl】サブルーチンから多次元配列を戻したい

    【Perl】サブルーチンから多次元配列を戻したい サブルーチン内で作った2次元配列と1つの変数(例:@listと$i)をリターンしたいのですが、どのようにすれば良いでしょうか? ↓サブルーチン(calc) return (@list, $i); ↓メイン my $a = 12; my (@list, $i) = &calc($a); 間違っていると思いますが、現時点でのプログラムを一部書きました。 ご回答よろしくお願いします!

    • ベストアンサー
    • Perl
  • Perlで二次配列は可能?

    毎度御世話になっております。 Perlスクリプトで二次配列のような配列の使い方は可能でしょうか? (A*B)種類の変数を配列の形で操作したいと考えています。 A,B共に8~256ぐらいで、処理の途中で増やせる様にしたいのです。 連想配列を用いればそれらしいことが出来るのではないかと思ったのですが、 うまく行きません。どうかお知恵を御貸し下さい。

    • ベストアンサー
    • Perl
  • 要らない配列を無くしたい。Perl

    要素のない配列を消したいです。 do\n be\n usual\n become\n get\n look\n watch\n このような複数行の文があり"a"が入っている行だけ配列に突っ込みたいと思っています。 自分が試した方法として。 @line = split(/\n/,$content); とりあえず改行で区切り配列にぶち込んでいき。 foreach $line (@line){       unless ($line =~/a/){       $line = undef; } } その次に"a"が入っている以外の配列にundefを入れるようにしていました。 しかしこれだとundefが入っている配列がたくさん出来てしまい納得がいきません。 要素のない配列を消したいです。 どなたかご教授お願いします。

    • ベストアンサー
    • Perl
  • 2次元配列を多次元配列にする。

    2次元配列を多次元配列にする。 PHP5で 2次元目はすべて同じキーの2次元配列を 2次元目のキーごとの内容を共通項にまとめて、 多次元配列にする方法を教えてください。 キーの数は膨大なので、関数の再帰呼び出し で、きれいに処理したいのです。 説明文では説明しきれないので、 やりたいことは↓の通りです。 array[0] = array([one] => "あ", [twe] => "う" [three] => "き"); array[1] = array([one] => "あ", [twe] => "う" [three] => "く"); array[2] = array([one] => "あ", [twe] => "え" [three] => "け"); array[3] = array([one] => "あ", [twe] => "え" [three] => "こ"); array[4] = array([one] => "い", [twe] => "お" [three] => "さ"); array[5] = array([one] => "い", [twe] => "お" [three] => "し"); array[6] = array([one] => "い", [twe] => "か" [three] => "す"); array[7] = array([one] => "い", [twe] => "か" [three] => "せ"); という配列があったら、これを↓のようにしたいです。 array( [あ] => array( [う] => array ("き", "く") [え] => array ("け", "こ") ) [い] => array( [お] => array ("さ", "し") [か] => array ("す", "せ") )   ) どうぞよろしくお願いいたします。

    • ベストアンサー
    • PHP
  • 配列について

    Delphiでファイル(下のような感じ)を読み取って 配列に代入するのはできるのでしょうか? 「1,1,1,0,1,2,3,4,5,6,7,8,1 1,2,5,4,3,2,1,a,0,0,0,5,7 ...」 とこのような感じのファイルです。 例えば ShowMessage(...[1][7]); で、「a」が出るような感じです。 ファイルから読み取ったならこつこつ一個一個変数に 代入するしかないのでしょうか? それともループを使って一気にできるのでしょうか?

  • perlでの配列について

    配列の配列について教えてください。 以下のようなテキストから値を取得し、A,B,Cの値をそれぞれ別の配列に格納し、A,B,Cの平均値を出す処理を行っているとします。 ----- A=100 B=200 C=300 A=110 B=210 : ----- 現状、以下のような状態です。 @arrayA=(); @arrayB=(); @arrayC=(); : (テキストを読み込み) : ・読み込んだ行がA=XXXならarrayAにpush push(@arrayA,"100"); ・読み込んだっ行がB=XXXならarrayBにpush push(@arrayB,"100"); : (各配列の要素の平均値を出す) このやり方だと、グループが増えるとそのまま行数が増えて冗長なので、グループごとの配列を1つの配列にまとめたいのです。 Webで初期値を入れた形で説明しているのはよくみるのですが、今回のように空の配列に値をいれていくにはどうすればよいのでしょうか?(そもそも宣言の仕方もわかりません)。 また、配列の配列?とした場合、以下のような処理はできるのでしょうか? (1)配列の1つ目の要素(の配列)にpushする(現状でのarrayAにpushに該当) push(@arrayAll[0],"test");

専門家に質問してみよう