• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:Pealでソート(多分出来る人には簡単な事だと思います))

PerlでHTMLフォームからdata_aとdata_bのデータをソートする方法は?

このQ&Aのポイント
  • HTMLフォームから取得したdata_aとdata_bのデータを連結してソートする方法を教えてください。
  • Perlのコードを使用して、data_aとdata_bのデータを連結し、ソートした結果を表示する方法を教えてください。
  • Perlで1,6,7,9,10,11,12,13,14と3,5,8を連結してソートする方法を教えてください。

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

  • ベストアンサー
  • xyz37005
  • ベストアンサー率51% (363/708)
回答No.1

@list = ($renketu); のままでは$list[ 0 ]に"1,6,7,9,10,11,12,13,14,3,5,8"が入ってるだけです。 @list = split( /,/ , $renketu); としましょう。

souta_n
質問者

お礼

あっそうか!なるほど・・・できましたできました。 ありがとうございました。

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

関連するQ&A

  • ソートすると最初の1行が消えてしまいます!

    いつも大変お世話になります。初心者の質問で申し訳ありません。 #!/usr/bin/perl # re-shuffle open OUT, ">file2"; open IN, "file1"; while (<IN>){ print OUT sort{&span($a) <=> &span($b)}(<IN>); } close OUT; close IN; ### sub span{ というふうに、file1から1行ずつ読み込んで、spanで規定する値で行を並べ替えてfile2を作るようにしたつもりですが、file2の最初の1行?が消えてしまいます。どこに問題があるのでしょうか、教えてください。あるいはまだ情報不足でしょうか?

    • ベストアンサー
    • Perl
  • 区切りファイルの列ソートについて

    僭越ながら、質問させていただきます。 タブ記号で区切られたTSVファイルというものを扱っているのですが、まずtest.tsvファイルを配列に格納して、そこから2列目の値すべてを降順にソートし、 (列をソートした結果の行は、ちゃんと最初のまま保持され、バラけずに出力されるようにしたい) その結果をresult.txtに表示させるプログラムを作りたいと思っております。 ですが、自分が書いたプログラムではまったく動かず、どこが悪いのかも情けないことにわかりません…。  かれこれ何時間も悩んでいますが、まったく方策が見出せません。どこをどう直せばいいのか、ヒントだけでも構いませんので、教えてくださいませんでしょうか。 プログラムは以下です。 #!/usr/bin/perl use strict; use warnings; use Fatal qw/ open /; my @values; my $tsv_file = "test.tsv"; my @tsv = &readtsvfile($tsv_file); @values = sort { $a->[1] cmp $b->[1] } @tsv; open(DATAFILE, '>>result.txt') or die("error :$!"); foreach(@tsv){ print DATAFILE; } sub readtsvfile { open(IN, $_[0]); while(<IN>) { chomp; push @tsv, [ split(/\t/) ]; } close(IN); return @tsv; } close DATAFILE; このプログラムの手直しでも新しい方法でもなんでも構いません、何か教えてくだされば、本当にありがたいです。よろしくお願いします。

    • ベストアンサー
    • Perl
  • join と split で文字列を操作する場合

    にんにちは、 うまく解決する方法を思いつかないので、質問させてください。 以下のスクリプトを実行すると、a から z を * で join して、 その後、* で split するかなと思ったら、split は正規表現として とらえるためでしょうか、エラーになります。 #! /usr/bin/perl -w use strict; my $a = '*'; my $b = join $a , ('a'..'z'); print "$b\n"; my @result = split /$a/,$b; print "$_\n" foreach @result; exit(); $a = '\*'; にすると、split したときに、 余計な \ が残ってしまいます。 任意の(書く時点では分からない)いろんな文字列で 連結したり分割したりする場合のスマートな方法が ありましたら、教えていただけませんか? Perl 5.8 です。お願いします。

    • ベストアンサー
    • Perl
  • CGI勉強中(初心者です)

    #!/usr/bin/perl print "content-type:text/html\n\n"; print "<HTML>\n"; print "<head><title>CGI</title></head>\n"; print "<BODY>\n"; print "<H1><FONT COLOR=\"#FF0000\">こんにちは</FONT></H1>\n"; print "</BODY>\n"; print "</HTML>\n"; というCGIつくりました。 プロバイダの説明には Perlの場所 /usr/bin/perl または /usr/local/bin/perl となっていますが、 どこにどう置いて(ホームディレクトリでしょうか?)、どうやって起動させてよいのかさっぱりわかりません。 ご教授ください。

    • ベストアンサー
    • CGI
  • データの日付でソートをしたい

    データの日付でソートをしたい データの日付でソートをしたいと思ってますが、うまくいっていません。 $kuchikm2の内容 1,8,,説明文,2010/07/06-01:27,1,,,,,,, 2,8,,紹介文,2010/07/18-02:27,1,,,,,,, 3,8,,コメント,2010/05/19-03:27,1,,,,,,, 4,8,,文言,2010/06/20-04:27,1,,,,,,, ソートした結果@sorted 2,8,,紹介文,2010/07/18-02:27,1,,,,,,, 1,8,,説明文,2010/07/06-01:27,1,,,,,,, 4,8,,文言,2010/06/20-04:27,1,,,,,,, 3,8,,コメント,2010/05/19-03:27,1,,,,,,, (perlソース) 略 #sortロジック use warnings; my @lines = $kuchikm2; print @lines, " a\n"; my @sorted = map { $_->[4] } sort { $a->[0] <=> $b->[0]} map { [(split q{,}, $_)[4], $_] } @lines; print @sorted, " b\n"; (ここまで) 以前ソートで質問したときに、数字でないといけないと言われたような気がしています。 お手数かけます。 よろしくお願いいたします。

    • ベストアンサー
    • Perl
  • HTMLからCGIへデータを引き継ぎ

    HTMLでメールフォームを作りCGI(Perl)で次のプログラムを作りました。 #!/usr/local/bin/perl print "Content-type: text/html\n\n"; print "$mail\n"; print "$namae\n"; print "$naiyou\n"; 動作確認のためプログラムは少しにしました。何も表示されません。

    • ベストアンサー
    • Perl
  • python超初心者です(3時間目)。pythonで以下のようなランダ

    python超初心者です(3時間目)。pythonで以下のようなランダム数列を生成させるにはどうしたらいいのでしょうか? 最終結果のイメージ(16進数8桁の数列x20行): 0 : c39a29eb 1 : b26cc9bb 2 : 4c494e47 ... 19: 93c85836 以下のようにコードを組んでみたのですが、 > tmp = ws.join(list) > TypeError: sequence item 0: expected string, int found のようなエラーが出てしまいます。どうやら数字を連結しようとしてるのでダメなのかな?と思っています。 ======================================== #! /usr/bin/python import random list = [] ws = "" for i in range (20): print i, ":", for j in range(8): list.append(random.randint(0,15)) tmp = ws.join(list) print tmp list = [] tmp = "" ======================================== ※ printでは必ずスペースが入ってしまうので、それを嫌う場合配列に入れて、要素を連結させなくてはならない、とwebにあったので、その方向で試してみました。 ※ また、ここではあくまでrandom を使用し、一文字(0,1,2,...E,F)づつ出力させたいと思っています。 なお、perlでは以下のように書くことができたのですが... ======================================== #! /usr/bin/perl for($i=0; $i<20; $i++){ printf ("%-02s: ", $i); for($j=0; $j<8; $j++){ printf("%x", int(rand(15)) ); } print "\n"; } ======================================== ※ んー第二言語としてpythonを学習してみていますが道のり険しそうです(やっぱrubyにしようか)... 宜しくお願い致します。

  • If文について教えてください。

    下記のようなプログラムで、結果を”間違っています。”にしたいのですが、 結果は”OK”となってしまいます。 どうすればいいのでしょうか? #!/usr/bin/perl $a="aaa"; $b="ccc"; if ( $a != $b ){ chigau(); } print<<"EOF"; Content-type: text/html <HTML> <BODY> OK </BODY> </HTML> EOF sub chigau { print<<"EOF"; Content-type: text/html <HTML> <BODY> 間違っています。 </BODY> </HTML> EOF exit; }

    • ベストアンサー
    • Perl
  • 条件付ソートについて

    SQL文で条件付のソートについて教えてください。 テーブルA(id, data_a, data_b)があったとき、 data_aとdata_bのうち、値が大きいほうのデータでソートするためのSQL文が知りたいのです。 例えば以下のようなデータが入っていたとき、 id,date_a,date_b 1, 10, 0 2, 20, 40 3, 30, 30 4, 90, 15 以下のような結果になるようにソートしたいのです。 id,date_a,date_b 1, 10, 0 3, 30, 30 2, 20, 40 4, 90, 15 良い方法があれば教えてください。 よろしくお願いします。

  • 配列の連想配列のソート

    お世話になります。mooTaihenです。 Perlで配列のソートが出来なくて困っております。 お忙しいところ、誠に申し訳けありませんが、ご教示をお願い致します。 【内容】  サンプルソースに示した様なデータ構成をソートしたいのですが、思惑通りに行きません。  期待しているソート結果は、 a1 b3 b4 c2  です。  <サンプルソース> my @data; $data[0]{name} = "b"; $data[0]{cnt} = 4; $data[1]{name} = "c"; $data[1]{cnt} = 2; $data[2]{name} = "b"; $data[2]{cnt} = 3; $data[3]{name} = "a"; $data[3]{cnt} = 1; @data2 = sort {chg($a,$b)} @data; foreach (@data2) { print $_->{name} . $_->{cnt} . "\n"; } sub chg { my(@s,@d)=@_; return $s[0]{name} cmp $d[0]{name} and $s[0]{cnt} <=> $d[0]{cnt}; }  <出力結果> a1 b3 c2 b4

    • ベストアンサー
    • Perl