• ベストアンサー

perlで配列の要素が空なのを知るには?

教えてください。 例えば、perlの次の様な要素が3つある配列で、 @t = ('A',,'C'); 2要素目が空で有ることを判別したいのですが、どうしたら良いでしょうか?

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

  • ベストアンサー
  • Tacosan
  • ベストアンサー率23% (3656/15482)
回答No.2

'' と比較する.

全文を見る
すると、全ての回答が全文表示されます。

その他の回答 (3)

  • kuroizell
  • ベストアンサー率55% (95/170)
回答No.4

print "$i行目の要素" . $j+1 . "が空ですぞ" if $line[$j] eq ''; に辿り着きたいということでしょうか。 @csvを一行ずつ、','でsplitして@lineに入れ、 さらに@lineを1要素ずつ空文字と比較すると良いと思います。

全文を見る
すると、全ての回答が全文表示されます。
回答No.3

データにカンマがないのであれば1行ごとにsplitつかってみてはいかがですか?

全文を見る
すると、全ての回答が全文表示されます。
  • kuroizell
  • ベストアンサー率55% (95/170)
回答No.1

> @t = ('A',,'C'); 2要素目($t[1])はCです。 @t = ('A',,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,'C')とした場合も、 2要素目($t[1])はCです。 空文字('')かundefを入れてやらないと、配列の中身は2つになります。

Silmaril
質問者

お礼

すみません。設問が間違っていました。 "a,b,c" "A,,C" の様なデータをCSVファイルで用意して、それをperlの配列に読み込むと AとCの間の2要素目は空いてしまいます。この空きかどうかを知りたいのです。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • 2つの配列要素を比較して、一致しない要素を別配列にしたい

    配列A、配列B、配列C と仮にします。 配列Aから、配列Bと一致しなかった要素の値を配列Cに入れる (一致した分を除外したい) みたいなことをデータベースを使用せずに、Perlで実現したいのですが可能でしょうか?

    • ベストアンサー
    • Perl
  • 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");

  • Perl 配列の質問です

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

    • ベストアンサー
    • Perl
  • 配列の要素追加について

    配列Aがあり、その配列に別の要素を加えた配列Bを作成するためにはどのようにすればよいのでしょうか? Aをコピーしたものに要素を一つ加えてと考えたのですが。。。 つまり char[] a = {'a', 'b', 'c'}; char ch = 'd'; とあったときに、aにchを加えて char[] b = {'a', 'b', 'c', 'd'}; を作成したいです。 よろしくお願い致します。

    • ベストアンサー
    • Java
  • 要らない配列を無くしたい。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
  • perlの配列追加について

    perlの配列の扱いについて質問です。 例えば、10個ほどの要素がある配列があるとして新しい要素を配列の任意の場所に追加する方法ってsplice関数を使うのが普通なのでしょうか? 本を参考にsplice関数を使ってみたら任意の場所に上書きのようになってしまいました(単に自分のやり方が悪いだけかもしれませんが)。 perlで簡単に配列の任意の場所へ、上書きではなく追加する方法をどなたか教えてください。 宜しくお願い致します。

    • ベストアンサー
    • Perl
  • 配列要素の演算

    初歩的な質問ですみません。Ruby初心者です。 Rubyの配列を使って以下のようなことをしたいのですが可能でしょうか? a = [2, 4, 6] b = 2 c = a / b # => [1, 2, 3] 配列aの全要素を定数bで割ろうとしています。 NArrayを使えば可能なようですが、 Ruby標準の配列でこのようなことはできますか? 可能でしたらその方法をご教授ください。

    • ベストアンサー
    • Ruby
  • 配列の要素をばらばらにして入れ込む

    たとえば8つの配列を持つ配列@aを(2004 10/12 田中 1 1 1 0 0)として、 その第4~8要素だけをコンマ区切りの文字列"1,1,1,0,0"として$aaaに入れることは可能ですか?

  • 配列要素の値の入れ替え

    C++の問題で分からないものがあります。 10個の要素を持つ整数型配列を宣言し、for文を使用して各要素に順番に1~10の要素を代入する。次に、関数名RVを使用して配列要素の値を入れ替えにより10~1の順番に並べ替えなさい。各要素への直接入力は行わないこと。 という問題で、1~10までの要素を代入することは出来るのですが、配列要素の入れ替えとはどうやったら良いのでしょうか? 教えていただけませんか?お願いします。

  • Perlで二次配列は可能?

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

    • ベストアンサー
    • Perl
このQ&Aのポイント
  • 昨日から急に携帯からのAirプリントができなくなった
  • パソコンもしくはスマートフォンのOSはiPhone8であり、接続は無線LANで行われています
  • 関連するソフト・アプリはありません。また、電話回線はアナログ回線です
回答を見る

専門家に質問してみよう