
僭越ながら、質問させていただきます。
タブ記号で区切られた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;
このプログラムの手直しでも新しい方法でもなんでも構いません、何か教えてくだされば、本当にありがたいです。よろしくお願いします。
No.1ベストアンサー
- 回答日時:
期待かわかりませんがこれでどうでしょうか。
#!/usr/bin/perl
$tsv_file = "test.tsv";
open(IN,"$tsv_file");
@InFile = <IN>;
close(IN);
@sortdata = sort { (split(/\t/,$a))[1] <=> (split(/\t/,$b))[1]} @InFile;
open(OUT, '>>result.txt');
print OUT @sortdata;
close(OUT);
ソートについては参照URLに詳しく書いてあるので見てみるといいです。
参考URL:http://www1.parkcity.ne.jp/chaichan/src/perl07.htm
おはやい回答をいただき、本当に感謝しております。
あなたさまのプログラムで試してみたところ、私の期待していたものと違わず動作しました。
重ねて感謝いたしますとともに、URLを参考にもっと深く勉強いたします・・
ありがとうございました!
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- システム CSVファイルのマッピング処理の省力化 1 2022/11/24 00:01
- Perl perlのflock関数でロックをかけたままopen関数で何度もファイルを開きなおすことはできますか 3 2023/05/01 22:25
- その他(プログラミング・Web制作) pythonのこのエラーがわかりません 3 2022/11/16 14:54
- Excel(エクセル) Excelにて、フォルダ内のTextファイルをマクロで統合すると文字化けしてしまう時の解消コード 4 2023/01/01 07:32
- その他(プログラミング・Web制作) python OpenPyXLを使って出力結果をエクセルに書き込み 2 2022/06/04 19:46
- CGI htmlからパラメータで、cgiに渡したい。 1 2023/02/06 16:15
- C言語・C++・C# c言語の問題の説明、各所ごとに 5 2023/07/26 11:03
- Perl perl このテキストファイルを簡単に配列に入れるには? 2 2022/04/27 20:24
- CGI perlで書いたcgiでsqliteの使い方を教えてください 2 2023/05/08 21:29
- Visual Basic(VBA) 列と行の名前(重複あり)が交差するセルに、データを入力したい 2 2022/06/25 22:42
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
空白を含む文をファイルに書き...
-
区切りファイルの列ソートについて
-
awk '{print $1}' file をもっ...
-
perlのDigest::MD5;でのMD5算出...
-
read() on unopened filehandle...
-
http://www.***.com/goo.htm(仮)
-
シェルスクリプトによる計算
-
fgets で値が取得できない
-
window.open でのファイル指定方法
-
正規表現で " ← を削除する...
-
重複文字列の消去について
-
CGI.pmで取得したファイルハン...
-
Perlの書き方
-
CSVファイルのダウンロードにつ...
-
C言語で特定の行を抽出する方法...
-
log2の「正確な」計算方法
-
csv2wiki.plのエンコーディング...
-
ExcelをCSV書き出す場合のシー...
-
C言語でのファイルのデータ更...
-
Windowsで複数のファイルを同じ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
window.open でのファイル指定方法
-
python renameについて
-
fgets で値が取得できない
-
行を指定して削除する方法PERL
-
csvファイルの横方向への改行に...
-
drtファイルはどうしたら開...
-
MATLABのm-fileについて
-
JSP URLに表示される拡張子 .jsp
-
オブジェクト作成の順番
-
WindowsでPerlをする際,1行目の...
-
ファイル検索の条件について
-
Perl の「stringify」の意味に...
-
perl ファイルが開かない
-
Javaのフォームの入力欄に文字...
-
一つのテキストファイルと複数...
-
MP3情報の表示
-
PerlでのUseless use...
-
巨大なテキストの最終行を取得...
-
ファイル全てを .xlsm に変更し...
-
MySQLにバイナリデータを正常に...
おすすめ情報