トップページ⇒php
1001コメント322KB

Perlコーディング初心者質問スレ Part 57

■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん2008/02/25(月) 19:25:51ID:???
Perlのコーディングで困ってる人のスレです。

【投稿する際の注意】
質問するときは内容をよく吟味してから投稿してください。
「コマンドの意味がわかんない」とかはマニュアル見ましょう。
回答者さんは何でも屋じゃありません。

1: 自分はこういう事がしたい。
2: それでこんな風にやってみたが・・・
3: こんなエラーが出て上手く行かなかった。

最低でも1と3が無いと誰も答えられないよ。
良い回答は良い質問から。一緒に勉強しましょう。

お勧めサイトは >2 以降

前スレ http://pc11.2ch.net/test/read.cgi/php/1189939783/
過去ログ倉庫 ttp://user.ftth100.com/mirrorhenkan/perl/
0696nobodyさん2008/06/07(土) 21:00:16ID:???
一部の0に1足してるだけじゃないの?
0697nobodyさん2008/06/07(土) 21:25:47ID:8brPzE2o
>>696
ですが4つとは限らないんです。
このビデオは4つですが、者によっては8つとかになります。
それをどうやって特定してるのかがわかりません。
0698nobodyさん2008/06/07(土) 21:33:39ID:???
>>697
youkufireかなんかAPI使ってるんだろ。
Perlとは関係ないな。
0699nobodyさん2008/06/07(土) 21:43:36ID:8brPzE2o
>>698
???
それではyoukufireではどうやってやってるんでしょうか?

こういうのってどういうスレに行くと知ってる人がおられるのでしょうか?
フラッシュ関連なのでしょうか?
自分はPerlをかじる程度しか知らないのでついここに来てしまったのですが。


アドバイスお願いします
0700nobodyさん2008/06/07(土) 22:34:21ID:???
HTTPに関して勉強して下さい。
全くのスレ違いです。
0701nobodyさん2008/06/07(土) 22:55:37ID:8brPzE2o
http???
他で質問してみます。ありがとうございました。
0702nobodyさん2008/06/07(土) 23:03:35ID:???
いや、どこで質問しても無駄だと思うよ。
結局、HTTPレスポンスを解析する必要があるから。

そして、HTTPレスポンスの意味を把握するには、
sidなどユニークなIDのパターン解析と
youkuで使われてるファイル取得swfの内部解析も必要。

この意味が分からない次元じゃ、到底ムリ。
0703nobodyさん2008/06/07(土) 23:36:39ID:8brPzE2o
なるほど。
http://www.kasai.fm/perlHTTP/
http://www.kasai.fm/perlHTTP/decode.html
からとりあえずそのhttpレスポンスとやらを実際に見てみようと思いましたが。

どうもCan't locate BASE64 in @INC エラーがでまして。
このモジュールをactiveperl5.8.1のppm(リポジトリは初期状態のまま1つです)でいれようとしましたが
ない模様です。

MINE::Base64って自分でコンパイル?でしたっけができないとダメなものなのでしょうか。
0704nobodyさん2008/06/07(土) 23:53:12ID:8brPzE2o
すいません
getHTTPの

#use MIME::Base64;
require('BASE64');
を
use MIME::Base64;
#require('BASE64');
にしたらエラーが出ませんでした。動いてるかはわかりませんが。
0705nobodyさん2008/06/08(日) 00:05:22ID:???
MIME::Base64は標準モジュールだ。
というか、質問内容が初心者未満の単なる教えて君だぞ。
最低限、ドキュメント読むかググってから書き込め。
0706nobodyさん2008/06/08(日) 00:14:24ID:Mcg1bojL
そうなんですか。とりあえずperlでwebページを読み込む実験は成功しました。
そこからフラッシュのURLを抜き出すところまではできそうです。

>sidなどユニークなIDのパターン解析と
>youkuで使われてるファイル取得swfの内部解析も必要。

これを検索とか意味を探してきます。
0707nobodyさん2008/06/08(日) 14:55:02ID:???
オブジェクトにメソッドを足すにはどうしたらいいでしょうか?

package foo;
*{foo::hoge::bar} = sub {1};
$hoge = foo->hoge;
$hoge->bar();
Can't locate object method "hoge" via package "foo"

アレ?
0708nobodyさん2008/06/08(日) 16:56:29ID:???
>>707
基本から一通り勉強し直したらいいんじゃないかな。
http://www.kt.rim.or.jp/~kbk/perl5.005/perlmod.html
http://www.kt.rim.or.jp/~kbk/perl5.005/perlobj.html
0709nobodyさん2008/06/08(日) 18:03:33ID:???
>>708
サンクス

最後のページ
Summary
なすべきこと。今、あなたは部屋を出てオブジェクト指向方法論に関する書籍を購入して、そして六ヶ月かそこらの間悩む必要があるでしょう。

ワロタ
0710nobodyさん2008/06/08(日) 18:41:29ID:NYonUevm
うーん継承させても
hoge {
$this = shift;
return $this;
}

bar{1}

hoge->bar()ってやったら呼べるんだけどbarはhogeと同じ空間にあるのが変というか
つまり単純化するとこんな感じ。

*{foo::hoge::bar} = sub {1};
print foo->hoge->bar(); エラー
print foo::hoge::bar->(); 動くが気もい

*{foo::hoge::bar} = sub {1}; #もっとキモイ
$top = foo::hoge;
print eval ($top ."::bar");

勉強してきます
しかしあんま資料ないっぽい
0711nobodyさん2008/06/08(日) 18:52:18ID:???
OOPじゃなくて、perlの基本からやり直しては。
*{foo::hoge::bar} じゃなくて *{foo::bar}
hogeなんていうpackage作ってないし。

0712nobodyさん2008/06/08(日) 19:09:16ID:???
> hogeなんていうpackage作ってないし。 !
それだ! ありがとうやっとわかったよ。
てっきり package a::b::c;
ってやると

a
a::b
a::b::c

ってのが自動的に生成されると思ってた。
0713nobodyさん2008/06/08(日) 20:02:49ID:???
パッケージじゃなくてオブジェクトに生やしたいの?
見かけ上はできるけだろうけどPerlのオブジェクトは名前空間に変数結び付けてるだけだからなあ

と思ったけどもう一度勉強した方が良さげだね
0714nobodyさん2008/06/08(日) 20:20:35ID:???
Perl DBI MySQL

CGIであるデータをホームページ上に表示することをやっています。
5000件ほどのデータをfetchrow_arrayで1行ずつフェッチしていますが
どうもフェッチ処理に時間がかかっているようです。
実際に必要なのは20件ほどで、他はページ送りで表示可能。
検索エンジンの検索結果ページなんかをイメージしていただければ。

そこで、不要なフェッチを無くすために、
複数行を飛ばしてフェッチすることってできますか?

もし他に改善策があれば教えてください。
一応、SELECTの段階で20件だけを取り出す方法を思いつきました。
0715nobodyさん2008/06/08(日) 20:39:35ID:???
>> 714 @array の展開はコスト食うのでやめたほうがいいかもね。
@arrayの高速操作が必要ならスライス操作とか調べてみると吉
SELECTで絞れるなら断然そっちのほうが早いと思うよ。



0716nobodyさん2008/06/08(日) 22:10:54ID:???
>>715
ありがとうございます。
スライス操作調べてみました。SELECTでLIMITつければいいんですかね?
これで必要な分だけのフェッチですみましたが、どうも時間がかかるようです。
ちょっと複雑なSQL文なんでそっちのほうがボトルネックのようですorz
SQL文のほうを考え直そうと思います。
0717nobodyさん2008/06/09(月) 12:35:45ID:???
SELECT SQL_CALC_FOUND_ROWS * FROM $table LIMIT ( $page*20+1 ), 20;
SELECT FOUND_ROWS();

>>715
>>716はSQLの話じゃなくて、
大規模の配列使うなって話で、
my @temp = splice( @array, 0, 20 );
的なことでしょ。

SQL文はスレ違い。
0718nobodyさん2008/06/09(月) 15:41:11ID:???
もうメンドクセーから、bind_columns()とfetch()にすれば?
生えーぞ。
0719nobodyさん2008/06/09(月) 16:00:10ID:???
生いいよね
0720nobodyさん2008/06/09(月) 19:29:41ID:BYZvhcIN
LIMITしらねーとか そんなレベルなら
其の都度ひっかかって質問するより勉強したほうがはやいよ
リファレンスページみっけてプリントアウトしとけ
0721nobodyさん2008/06/09(月) 23:24:50ID:???
122
11
11000
↑これをソートすると

11
11000
122
↑こんな風になってしまいます。

11
122
11000
↑こんな感じで大きい順にソートする方法を教えてください。
0722nobodyさん2008/06/09(月) 23:26:19ID:???
sort { $a <=> $b } ( 122, 11, 11000 ) ;
0723nobodyさん2008/06/09(月) 23:36:47ID:???
>>722さん、ありがとうございました。
0724nobodyさん2008/06/13(金) 02:38:01ID:???
ファイルのアップロードについて質問です

*** form.html ***
 <input type="file" name="gazou1">
 <input type=その他 ...>

*** form.cgi ***
use CGI;
$q = new CGI;
@names = $q->param();
foreach $name (@names) {
 $value = $q->param($name);
 if (input type が file だったら ) {
  ファイル受信処理
 }
 なんらかの配列に格納
}
と、したいのですが、
inputのtypeは調べられないのでしょうか?
inputのnameで判断するしかないのでしょうか?
0725nobodyさん2008/06/13(金) 09:17:11ID:???
>>724
ブラウザから渡されるデータ自体に type 属性の値が含まれて
いないのだから、CGI プログラム上から調べる事はできない。

ref $value でアタリを付ける事はできる。
http://perldoc.jp/docs/perl/5.10.0/perlfunc.pod#item_ref_EXPR_ref_reference
http://perldoc.jp/docs/modules/CGI.pm-2.89/CGI.pod
(「ファイル・アップロード・フィールドの作成」の項)
0726nobodyさん2008/06/13(金) 10:25:57ID:???
@id には ( '101','106','112','130','150') などと入っており
$unit->{101}->{point} = 2.5;
$unit->{130}->{point} = 6.2;
$unit->{150}->{point} = 3.2;

と代入してあります

このポイント(2.5、6.2等)を元にして@idをソートしたいのですが

@id = sort { $unit->{$_}->point <=>$unit->{$_}->point } @id

とまで考えて、$aや$bをどのように使ったら良いのか分らなくなりました
よろしかったらどのように表記したら良いのか教えてください
0727nobodyさん2008/06/13(金) 10:51:23ID:???
>>726
>>3
07287262008/06/13(金) 11:00:28ID:???
ありがとうございます
Perlメモはいつも参考にさせて頂いてまして
・複数の項目でソートする
・自分で決めた順番でソートする
の応用でなんとかなるかと思ったのですが
どうにも分らずこちらでお伺いしました次第です
どの辺りを応用すればよろしいでしょうか?
07297262008/06/13(金) 11:18:24ID:???
・複数の項目でソートするを応用して(まんまかも)
先にmapでポイントの配列を作る事でなんとか出来ました

@id = map { $_->[0] } sort { $b->[1] <=> $a->[1] } map { [$_,$unit->{$_}->{point} ] } @id

ありがとうございました
そしてお騒がせ致しました
0730nobodyさん2008/06/13(金) 11:37:27ID:???
@id = sort { $unit->{$a}->{point} <=> $unit->{$b}->{point} } @id
07317242008/06/13(金) 12:09:38ID:???
>>725
やはりtypeは知りようがないのですね。
ご回答ありがとうございました。
07327262008/06/13(金) 12:41:47ID:???
なるほど、$_ がキーになる場合はそこが$a,$bの対象になるんですね
コードがすっきりしました
>>730さん、ありがとうございます
0733nobodyさん2008/06/13(金) 12:51:42ID:???
>>732
sortでなんで$_がでてくるのかわからない。$aと$bしかないだろ。
grepやmapと混乱してないか?
07347262008/06/13(金) 13:06:56ID:???
Perlメモのを応用しようとしていじくりまわして
>>726のソースに間違えて辿り付いたので勘違いしてました
てっきり配列の要素を引っ張り出したらそれが$_になるのかと・・・
で、$a,$bはそれが直接比較の対象にならないといけないのかと勘違いしてました orz
0735nobodyさん2008/06/14(土) 03:33:00ID:???
俺も今多次元ハッシュ使ってるけどコツがわかると便利で気に入ってる。
0736nobodyさん2008/06/15(日) 00:12:38ID:???
ちょっとした構造体風の物を作るのにいいよね
リファレンスで受け渡しも簡単だし
0737nobodyさん2008/06/15(日) 01:14:21ID:???
WinXPPro+Cygwin、iswebでperlを作成しています。
普段は問題なく動いているのですが、自宅で試したperlをiswebにアップロードする作業が面倒でたまりません。
そこで質問なのですが、
#!/usr/local/bin/perl
とかの表記を書き換えずとも、上記二つの環境の両方で動くように出来ないでしょうか。
毎度毎度アップロードするときに、全cgiを書き換えているので、そこだけでも何とかしたいんです。
もしくは、専用のFTPソフトみたいなので、アップと同時に書き換えてくれるような奴があると良いなぁって思ってます。

どなたか、よろしくお願いいたします。
0738nobodyさん2008/06/15(日) 01:43:19ID:???
それこそローカルと同期させる専用FTPクライアントをPerlで作れよw
Net::FTP使えば、30分程度で作れるだろ。
0739nobodyさん2008/06/15(日) 01:43:42ID:???
っ coLinux
っ ActivePerl をC:\usr\local\以下にインストール

っ 「メンドクセーっ! 頭 #!perl に統一してやんよ。」(Path通ってなかったら知らん)
07407382008/06/15(日) 01:45:20ID:???
単純にPerlのパスが違うって問題なら、
XPでエイリアス作れるようにするソフト使って、iswebに合わせればいい。
0741nobodyさん2008/06/15(日) 01:52:33ID:???
>>737

■サーバー

#!/usr/local/bin/perl

require "example.cgi";

■ローカル

#!C:/perl/bin/perl

require "example.cgi";


これなら、example.cgi をアップするだけでOKです。
(意味が違うでしょうか??)
0742nobodyさん2008/06/15(日) 02:10:08ID:???
>>738-741
どうも、有難うございます。
>>741さんのが一番楽そうなので、それでいこうと思います。

どうもありがとうございました。
0743nobodyさん2008/06/15(日) 14:41:47ID:???
Perlでコードを書き始めたばかりの物なのですが、基本が少し分からないので質問させて下さい。

PerlでCGIを作っているのですが、いくつかのフォームから入力を取ろうと考えています。
フォームが一箇所ではないので(検索や書き込み、削除等)、送られて来る処理が全く違うため、
送られて来たフォームによって処理を変えたいです。
例えば、検索ならこの関数、書き込みならこの関数、のように分けたいのですが、どのように
実装するのがスマートな方法でしょうか?
考えているのはhiddenで、フォーム別の値を持っておきその値によって分岐しようと思っている
のですが、他にスマートな方法があれば知りたいです。

宜しくお願いします。
0744nobodyさん2008/06/15(日) 14:43:16ID:???
>hiddenで、フォーム別の値を持っておきその値によって分岐
これが一番一般的で分かり易いと思うよ
0745nobodyさん2008/06/15(日) 15:43:06ID:???
ところでお前ら、
postとらgetを使うときのデバッグってどうしてる?
コマンドラインからPOSTを設定する方法とかあるの?

めちゃめちゃ大変なんだが
0746nobodyさん2008/06/15(日) 17:13:16ID:???
>>743

仕様によりますが、動作の種類によって、
スクリプトそのものを分けてしまうのはどうでしょう。
0747nobodyさん2008/06/15(日) 17:51:51ID:???
受け取った値も表示するようにするかテキストに吐かせてるだけだけど、
そんなに面倒?
0748nobodyさん2008/06/15(日) 17:55:33ID:???
何をやってるのかよくわかんないけど、どうやってコーディングするかという問題より、
postでもgetでも、与えられる引数をちゃんとチェックすることで、自然と動作の分岐が行えると思うんだけど
0749nobodyさん2008/06/16(月) 02:30:03ID:???
質問者の想定とは違うかもしれないが、


 | ̄ ̄ ̄ ̄| [検索] [管理] [ほげほげ]
   ̄ ̄ ̄ ̄

みたいな感じなら、submit に文字列を仕込むという方法が。
0750nobodyさん2008/06/16(月) 10:59:18ID:???
でも文字化けという問題が...
ラジオかセレクト使えばいいと思う。
それかAjaxか
0751nobodyさん2008/06/16(月) 11:58:23ID:???
>>745
普通はユニットテスト用のロボット作るんじゃね?
使ってないけど、モジュールも何種類かあるはず。
0752nobodyさん2008/06/16(月) 12:17:52ID:???
じゃあ、まずは画面を見て情報を処理しキーボード操作する
ロボットのAIの開発からしなきゃだな。
0753nobodyさん2008/06/16(月) 12:26:02ID:???
>>752
そのAIのデバッグはどうするんですか。
0754nobodyさん2008/06/16(月) 12:53:21ID:???
ニワトリが先か タマゴが先か
0755nobodyさん2008/06/16(月) 23:32:06ID:???
真ん中をとってヒヨコが先だ
0756nobodyさん2008/06/17(火) 00:45:20ID:???
>>745
CGI.pm を使うなら
use CGI qw(-debug);
0757nobodyさん2008/06/17(火) 10:41:46ID:???
>>745

実際に色々な条件でPOST、GETさせてみて、
おかしくなったらそのつど、修正します。

あとは、スクリプトをWEB上にアップしている場合、
ユーザーの方からのバグ報告フォームを設けておくと、
問題発見が早くなります。


コマンドライン POSTで検索:
http://www.google.co.jp/search?hl=ja&rls=GFRC%2CGFRC%3A2007-04%2CGFRC%3Aja&q=%E3%82%B3%E3%83%9E%E3%83%B3%E3%83%89%E3%83%A9%E3%82%A4%E3%83%B3%E3%80%80POST&lr=
0758nobodyさん2008/06/17(火) 12:33:48ID:???
>>757
500が帰ってきたとき、どこが悪いかどう見当つけてるかってはなしでしょ
0759nobodyさん2008/06/17(火) 14:47:07ID:???
なんでTest関係のモジュール使わないの?マゾなの?
0760nobodyさん2008/06/17(火) 16:37:40ID:???
世の中には君の環境と違う環境の人もいるのだよ
0761nobodyさん2008/06/17(火) 18:26:54ID:???
> 世の中には君の環境と違う環境の人もいるのだよ

意地はってないで、「わかりません!教えてください!」っていうのがオトナだよ
0762nobodyさん2008/06/17(火) 18:42:33ID:???
> 意地はってないで、「わかりません!教えてください!」っていうのがオトナだよ

意地はってないで、「詳しいことはわかりません!!」っていうのがオトナだよ
0763nobodyさん2008/06/17(火) 18:53:23ID:???
http://www.google.co.jp/search?sourceid=navclient&hl=ja&ie=UTF-8&rls=GFRC,GFRC:2007-04,GFRC:ja&q=perl+%e3%83%81%e3%82%a7%e3%83%83%e3%82%af
0764nobodyさん2008/06/18(水) 12:33:38ID:???
つまらん('A`)1
0765nobodyさん2008/06/18(水) 14:54:32ID:???
Encode::guess_encoding の結果が shiftjis or euc-jp ってなったときで困ってます。
guess_encoding のあとに $utf8 = $enc->decode($inputkeyword); とやってるのですが、エラーとなります。
「 or 」 で split して
my $utf8 = Encode::decode($EncType[0], $inputkeyword);
のようにしたりするのが一般的なんでしょうか?

それとも Encode::decode する際に優先順位を決めたり出来て、それで decode できちゃったりするもんでしょうか?
0766nobodyさん2008/06/18(水) 15:02:39ID:???
>>765
一般的かどうかは知らんが、俺は JEncode::_func_getcode() みたいな
ラッパーを書いて使っている。
http://www.donzoko.net/source/JEncode/JEncode.pm
0767nobodyさん2008/06/18(水) 15:25:31ID:???
>>766
ありがとうございます。
_func_getcode と _ambiguous、_test_mojicode を見ながら実装します。
0768nobodyさん2008/06/20(金) 01:13:32ID:???
@X0(a,b,c);
@X1(d,e,f);
と二つリストを作って、
$Y = int(rand(2));
で$Yに0か1を入れて、それに対応したリストを使いたいのですが、どうすればいいですか?
print "$X"$Y"[1]";
のような感じにしたいのですが…。
0769nobodyさん2008/06/20(金) 01:41:21ID:???
print @{'X'.$Y};
0770nobodyさん2008/06/20(金) 01:43:48ID:???
あ、スライスか
print @{'X'.$Y}[1];
0771nobodyさん2008/06/20(金) 01:53:59ID:???
>>770
カッコイー

こんな風にしてた。
$Y = 'X'. int(rand(2));
print ${$Y}[1];

横からスマソ
07727682008/06/20(金) 02:20:58ID:???
>>769-771
素早い回答ありがとうございます。
0773nobodyさん2008/06/20(金) 08:10:04ID:???
>>769-771
今時シンボリックリファレンスはやめとけ。
use strict;
my @X = [[a,b,c], [d,e,f]];
print $X[0]->[1]; # ==b ($X[0][1] とも書ける)
print $X[1]->[2]; # ==f
07747702008/06/20(金) 12:31:24ID:???
>>773
>>768に言ってくれ
前提条件に合わせてわかりやすく書いただけだ
07757682008/06/21(土) 17:41:30ID:???
昔やってたEBSってゲームを引っ張り出して弄ってる初心者なので、
バカの一つ覚え状態でかいてます><
>>773の書き方は始めてみました。
ありがとうございます。
0776nobodyさん2008/06/21(土) 17:48:55ID:???
ここらへんにいる連中にへりくだる必要ないと思うよ。
0777nobodyさん2008/06/21(土) 23:46:21ID:???
配列やハッシュでリファレンスを使うことを覚えると、かな〜り違うよ。
0778nobodyさん2008/06/22(日) 01:48:39ID:???
>>773
s[\[\[.*\]\]][([$1])]
07797782008/06/22(日) 01:49:38ID:???
s[\[\[(.*)\]\]][([$1])] # キャプチャし忘れたorz
0780nobodyさん2008/06/22(日) 02:10:15ID:???
perlにjavaの.propertiesファイルみたいなのはないでしょうか?
ちょっとしたデータをファイルの中にまとめておければ便利だと思っているのですが、
そのような奴があれば、助かります。どなたかご教授ください。
0781nobodyさん2008/06/22(日) 02:24:11ID:???
>>780
Data::Properties
0782nobodyさん2008/06/22(日) 13:05:18ID:???
外部コマンドの出力結果の取り込みがうまくいきません、なぜなんでしょうか?

open(COM_RET, "ping -n 10 192.168.100.1 |");
while ($data_line = <COM_RET>) {
print $data_line;
};
close(COM_RET);
0783nobodyさん2008/06/22(日) 13:27:13ID:???
なにも表示されないってこと?
pingコマンドは存在する?
openの後に$|=1;したら表示される?
for (`ping -n 10 192.168.100.1`){print;}ではどう?

07847822008/06/22(日) 13:28:07ID:???
すみません。
プログラムの保存先を間違えていました。
0785nobodyさん2008/06/25(水) 22:01:59ID:???
Google Wireless Transcoder経由でアクセスされるとpostで送信されてくる
フォームのデータがおかしくなってたことありませんか?
たとえば、なにも入力しなかったinputフォームの値が全て文字列の"VALUE"に
なったり・・・
0786rubi2008/06/26(木) 00:32:36ID:P35F8OvT
system関数で外部コマンドを実行する際、その引数にプログラム内で使用しているスカラ変数の内容を指定するのにはどうすればいいのでしょうか?
0787nobodyさん2008/06/26(木) 00:55:50ID:???
system($cmd $arg1 $arg2 ・・・);

引数中にスペース等ある時は、
system qq($cmd "$arg1" "$arg2" ・・・);
0788nobodyさん2008/06/27(金) 16:35:38ID:???
すみません知恵を貸してください。
こんなファイルがあります → 項目\tデータ\n

中には同じ項目でデータ違いがあります。
100\t百\n
100\t百円\n
100\t百円玉\n

同じ項目は一つで良いので一番データの短い100\t百\nを残して
残りの長い二行を削除したいと考えています。
何か良い方法は無いでしょうか。
短いデータのみ残したいので配列の重複削除サンプルは
そのままでは利用不可でした。
07897882008/06/27(金) 16:38:10ID:???
…と、そもそも重複ではないですね。
重複サンプル〜以下は忘れてください。
0790nobodyさん2008/06/27(金) 17:02:39ID:???
とりあえず書いてみろ
07917882008/06/27(金) 17:30:24ID:???
普段はスカラーと配列くらいしか使ってません。
項目もデータもバラバラなので方法が思いつかなくて。
0792nobodyさん2008/06/27(金) 17:41:01ID:???
連想配列
07937882008/06/27(金) 17:59:26ID:???
初めは$DATA{項目} = データ; で一つだけ残そうと考えました。
そうじゃなくて、連想配列にしてデータサイズでソートとかあるんでしょうか?
分かりません(><)
0794nobodyさん2008/06/27(金) 18:21:02ID:???
連想配列にしてデータサイズでソートすりゃいいだろ
0795nobodyさん2008/06/27(金) 18:27:40ID:???
書かないってことはまだなにも書けない状態ってこと?
まずはopenでファイル開けるの解かる?
07967882008/06/27(金) 18:50:29ID:???
>>795
連想配列に入れてみました。

my %DATA;
open R, "koumoku.txt" or die;
while (<R>) {
chomp;
my ($key, $value) = split(/\t/);
$DATA{$key} = $value;
}
close R;

データサイズでソートは後でググってみます。
項目ごとに最短データだけ残す方法は今の時点で想像できません。。
■ このスレッドは過去ログ倉庫に格納されています