• ベストアンサー

__DATA__の意味

hara_pekoの回答

  • hara_peko
  • ベストアンサー率28% (11/38)
回答No.3

__DATA__の方はあまり使ったこと有りませんが、<DATA>の方であれば__END__と組み合わせてちょっとしたスクリプトの動作確認なんかによく使ったりします。いちいち読込用のファイルを作成してopenするのが面倒な時とかです。 参考URLはちょっとした調べ物などに便利な本です。

参考URL:
http://www.7andy.jp/books/detail?accd=30527064
noname#17299
質問者

お礼

売っているのはよくみかけますが、丸みを帯びた字がいい加減な印象だったので、 きちんと書かれていないのではないかという先入観を持っていました。 本屋さんに行ったら内容をよく読んでみます。 現在の自分のレベルと合っているか確認して、使えそうだったら買ってみます。 ありがとうございました。

関連するQ&A

  • C#です。データの出力について

    C#です。 二次元配列に格納したデータをメモ帳に出力したいのですが、どうすればいいですか? 二次元なので、それぞれをカンマで区切って出力したいのですが、やり方がわかりません。教えて下さい(><) 例)りんご,1   トマト,2   バナナ,3   みかん,4 などの二次元配列をこのように、カンマで区切った状態で出力したいんです。できれば具体的にプログラムを教えていただけると嬉しいです。

  • C++ 数値データファイルから2次元配列への格納法

    C++ 初心者です。 以下のような半角スペースと+ 又は - の符号付きの数値データファイル"data"を読み込んで2次元配列に収納するプログラムを教えて頂きたいです。 (アンダーバー"_"で、半角スペースを表します) ___-10.2__20.1_ _30.3___________-50.3___ ______3.1____-9.2__ なお、C++の参考書に、「通常の配列はあらかじめサイズを決めて作成しなければならないが、vectorにはメモリが許す範囲でいくつでも要素を追加できる」と書いてあり、この点を活かしたプログラムを作成したいので、最初にデータ数を決めないで、データファイルの最後にくるまで読み込めるようなプログラムにしたいです。 プログラム中で、 for 又は while () { ___________for 又は while() { ______________________cout << "n[" << i << "][" << j << "]= " << n[i][j] << endl; ___________} } のように記述して以下のように出力されるようにしたいです。 n[0][0]= -10.2 n[0][1]= 20.1 n[1][0]= 30.3 n[1][1]= -50.3 n[2][0]= 3.1 n[2][1]= -9.2 すみませんが、わかる方がいらっしゃいましたら、宜しくお願いします。

  • 自然数の和のプログラム

    if-else文とwhile文とfor文と1次元配列、このすべての条件を使って自然数の和を求めるプログラムを作りたいんですけど、これらの条件全てを使ってプログラムを作ることができません。 よろしければ教えてください。

  • perlでの三次元配列の作り方

    perlで三次元配列をテキスト入力から作りたいのですが、例えば二次元配列の場合 foreach $line (@input) push @data, [split /[:]/, $line]; で@dataが二次元配列になるのですが、三次元配列の場合このあとに push @output, \@data; とするとリファレンスが同じであるためループをまわしてもうまく三次元になりませんよね。 解決法はありますでしょうか?

  • 正規表現中の()について

    正規表現中の()について 繰り返し正規表現を行い、マッチ部分を配列に入れる場合の疑問です。 今回、while文を使わずに書いてみようとしています。 #3個以上数字が連続していたら、配列へ入れる。…(1) my @data = ( $str =~ /\d{3,}/g ); #3個以上連続している、同じ文字を取り出して、配列へ入れる。…(2) my @data = ( $str =~ /(.)\1{2,}/g ); 1つめのほうは期待通りに動きました。 が、2つめは正規表現内の()で囲まれた範囲しか、配列に入ってくれませんでした…。 具体的には、$str='AAABBB'なら、 @data='A','B'になってしまいました。(AAA,BBBを配列に入れたい) たぶん、while文と$&を使えば書けそうだとは思いますが、 今回は、この書式で期待通りに動かす方法を知りたいです。 AAA,BBBを配列に入れるにはどのように書けばよいでしょうか? どうか、ご教授ください。 よろしくお願いします。

    • ベストアンサー
    • Perl
  • rubyのデータ読み取りについて

    rubyで100行からなる "山田" : 173, 60 ; 176, 61 のようなデータを読み取り、kekka_fileに書き出すとすれば、冒頭で file=open("data","r") この文を書き、この後は、どういうプログラムを組めばよいでしょうか? while文を使えばよいのでしょうか? 大雑把な質問で、すいません 回答宜しくお願いします。

  • 2次元データの複素フーリエ変換するコードの作成

    数値計算等の2次元や3次元の空間データ(実数)をFFTによって複素フーリエ変換する実際のプログラム化についてお尋ねします。プログラムの実装ということなので実際的な質問で長文になっています。すみません。 まず、手持ちに1次元のFFTプログラムがあるということを前提とします(逆フーリエ変換すると、元の実数の系列が出ることは確認済のコード)。そして2次元配列の実数のデータがあるとします。この2次元のデータを2次元の複素フーリエ成分に変換することが目的です。(私の分野では波数空間への展開ということになり、複素数ですから位相情報も含まれることになります。) 例えば、x,y方向に16x16のデータあるとすると、 do j=1,16 ここでjを固定してi:1~16の実数データについて1次元のFFTをかける。 このとき、FFTにかける16個の実数データを複素数の実部に入れて、虚部はゼロとする。 FFTの出力も複素数となっている。 ここで出てくる複素フーリエ変換の結果は実部・虚部で前半(0~7)であり、後半(8~15)はその対称とか点対称(符号が逆)とかになっている(虚部をゼロとしているから)。それを複素数の2次元配列として保存する。 enddo 次いで、 do i=1,16 iを固定してj方向にFFTをかける。このとき、FFTに放り込むデータは上記の複素フーリエ変換の出力結果である2次元データを使う。具体的には複素数の2次元データをj方向の1次元の複素数配列にコピーしてFFTをかけて、その出力結果を新たな2次元配列の複素数に保存する。 enddo この結果、得られた2次元の複素数のデータが、私の所望のデータである、ということです。 式が指し示すとおりのことをすればいいのだ、ということに尽きるのだろうと思いますが、アルゴリズム的にアンバランスのように見えてこれでいいのかなと思えてしまいます。最初に虚部をゼロにするというようなこととかです。そのため確信が持てません。また、結果を見てもわかりにくい面があります。 このような考え方で実装するということいいのでしょうか。全く間違っているでしょうか。もしその場合、考え方の間違いを指摘して頂けると助かりますが(根本的な間違いだったら指摘しようがないということにもなりますが。) また、例えば、始めから実数の2次元配列をすぐに2次元複素数の実部に入れて、虚部をゼロとしてそこからコード方がすっきりするのかなと思いますが。 この辺が確定すると、3次元は同じことということになります。 サンプルコードがネットに出ているという面もありますが、自分でやる方が組み込みやすいのでお尋ねしました。 長文で申し訳ありませんが、よろしくお願いします。

  • Perlで配列に設定した値が関数に引き継がれない。

    レンタルサーバ上でPerlのプログラムを作成しているの ですが、動作でよくわからないことがあるので、教えてください。 Perlのプログラムがあるサーバで動作していて、それを 他のサーバに移したのですが、正しく動作しなくなりました。 調べてみると、関数を呼んでいるところで配列の値がうまく 引き継がれていませんでした。 呼び出しの処理は次の通りです。 ●呼び出し元 ret= &SubModule(*DATA1); ●呼び出し先 sub SubModule { local(*DATA1) = @_ if @_; while(($key, $value) = each(%DATA1)) { #配列に対する処理 } #以下省略 このような処理の時に呼び出し元では配列DATA1に 値が入っているのに呼び出し先のSubModuleでは 空になりwhile文を素通りして「#配列に対する処理」 を実行しません。 いろいろ試しているうちに、呼び出し先に1つ余計な whileを入れると配列DATA1に値が入ってきました。 つまり次のように変更すると、うまくいきました。 呼び出し先 sub SubModule { local(*DATA1) = @_ if @_; while(($key, $value) = each(%DATA1)) { } while(($key, $value) = each(%DATA1)) { #配列に対する処理 } #以下省略 こうすると 「#配列に対する処理」が実行されました。 教えていただきたいのは以下の2点です。 (1)元のサーバでは問題なく動作していたのですが、  別のサーバでは、配列の引数がうまく引き継がれ  なくなりました。どういう原因が考えられるでしょうか。  処理上何かまずいところがあるのでしょうか。 (2)呼び出し先でwhile文を一つ入れることで、配列の  値が参照できるようになったのですが、これは  なぜでしょうか。 よろしくお願いします。

    • ベストアンサー
    • Perl
  • javascriptを実践的に学べる書籍って?

    javascriptの書籍について質問です。 実践系の書籍且つES6(2015)以降のソースで実際にプログラムを作る書籍を探しております。が、 何を買うべきなのか迷っております。 すでに、古いらしく今では、それほど参考にならないと過去、技術系の質問サイトで指摘を受けたリファレンス(2011/12/15初版第二刷発行)と その指摘をうけ、新たに購入したリファレンス(es6とそれ以前のものを解説している)があります。 なので次は、実践系の書籍を買おうかと思ったのです。 どのような書籍がおすすめですか。

  • 2次元配列がわかりやすく記述されたおすすめの書籍はありませんか?

    こんばんは、皆さん。 2次元配列がわかりやすく説明されているおすすめの本はありませんか? リファレンスも怪しいので、そこから丁寧に解説されていて、 2次元配列を中心に、多次元配列にも触れられている本を探しています。 私の技術レベルを持っている本で表すと以下のとおりです。 ・Perlの絵本(一通り理解しました) ・技術評論社のすぐわかるPerl(一通り理解しました) ・ASCII社のPerl/CGIスクリプト入門(CGIの前までは理解しました) これらの本には2次元配列については触れられておらず、 まだ自分には早いのかとも思いましたが、必要に迫られています。 アマゾンの評価は、具体的にこの項目についてはどうだといった情報が載っていないため、参考にできませんでした。 権威ある分厚い本は、持っている本を完全に理解してからにしようと思っています。 Perlの絵本くらいわかりやすく図解されているとありがたいです。 よろしくお願いします。

    • ベストアンサー
    • Perl