Perl コーディング初心者質問コーナー Part25
■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん
03/06/28 01:18ID:???【投稿する際の注意】
質問するときは内容をよく吟味してから投稿してください。
1:自分はこう言う事がしたい。
2:それでこんな風にやってみたが・・・
3:こんなエラーが出て上手く行かなかった。
最低でも1と3が無いと誰も答えられないよ。
ソース貼る時は、全角スペースでインデント忘れずに。
良い回答は良い質問から。一緒に勉強しましょう。
関連スレ
【Perl上級者コーナーPart01】
http://pc2.2ch.net/test/read.cgi/php/1024741312/
CGI: Common Gateway Interface part 11
http://pc2.2ch.net/test/read.cgi/php/1055597189/
【Perl,CGI】参考書籍 第三版
http://pc2.2ch.net/test/read.cgi/php/1030209573/
【 スクリプト改造工房 PART 6 】
http://pc2.2ch.net/test/read.cgi/php/1047806915/
過去ログやお勧めサイトは >>2-10
0249nobodyさん
03/07/04 22:27ID:???エラーメッセージの内容くらい見ようよ。
>>245
> glob failed (child exited with status 127) at tmp.cgi line 2.
globに失敗してる。cshが使えない環境か、cshがglobに使う
一時領域にアクセスできないのが原因だと思う。
素直にglobは諦めて
opendir(DIR, "./tmp");
unlink (grep !/^./, readdir DIR);
とかした方が良いかも知れない。
0250nobodyさん
03/07/05 00:36ID:???$database{"$id"} = %params;
で格納し、
foreach my $id ( keys %database ) {
print qq($id <BR>);
foreach my $key (keys %{ $database{$id} }){
print qq($key <BR>);
print qq($database{$id}{$key} <BR>);
}
}
で中身を確認しようとしていますが1個目の$idで表示が止まります。
$idは四つあり、%paramsのkeyは15個ほどあります。
foreach my $id ( keys %database ) {
print qq($id <BR>);
}
と、$idのみを全て見ようとすると三つとも表示されます。
入門 perl DBI を見て、
print Data::Dumper->Dump( [ \%database ] );
しましたが、
$VAR1 = { '2003415' => '1234 2003 game_year', '20031010' => '24/64', '20030606' => '18/32', '20030505' => '18/32' };
こんな表示です。。。。
2003415 20031010 20030606 20030505 は%databaseのkeyで、
あとは%paramsのkeyやらvalueやらの一部ですが全部じゃありません。
MLDBM初めて使うので、とりあえず格納して、それを表示させて
確かめる為のテストをしているのですが、
%{ $database{$$id} }のkeyとvalueを表示させるにはどうしたらいいのでしょうか。
0253nobodyさん
03/07/05 02:00ID:???その為の初心者スレだと思うが…。流石に釣りやネタには俺はレスしないけどな
0254nobodyさん
03/07/05 03:29ID:???そうやって一歩ずつ覚えていけばいいんだから。ただ、
エラーメッセージは読め。
英文だろうがなんだろうががんばって読め。
0255nobodyさん
03/07/05 03:43ID:???英文のメッセージが読めないなら和訳のを探せばいいのに。
ttp://www.namazu.org/~tsuchiya/perl/info/perl-ja_109.html
0256252じゃないが
03/07/05 12:13ID:???質問の本質が「リファレンスを理解してない」という事にあるので、それを指摘するのが何故悪い?
0257nobodyさん
03/07/05 17:21ID:jB+j5VLT・・・
ENDDOC
でENDDOCが見つからないと怒られるんですが
何か他にやらなければいけないことがあるんでしょうか?
0259nobodyさん
03/07/05 17:52ID:???0260257
03/07/05 17:58ID:???コピペしたわけでもないのですが・・謎
というかどの行も全部そういう風になってますね(^^;
0261257
03/07/05 18:09ID:???先頭にタブ入れちゃいけないんですね。
後ろに付いちゃいけないという事は
前にも付いちゃいけないのかと思ってやってみたら。
参考書の
print <<" AAA"
の先頭の空白の意味がわかった・・・
どうもでした>258さん
0262nobodyさん
03/07/06 02:53ID:???eval{ flock(FILE,2); };
if($@){ &MkDIR ; }
これは期待通りに動きますか?
0263262
03/07/06 03:01ID:t//EFERU0265250
03/07/06 09:49ID:1R/hd8rnアドバイスありがとうござました。
リファレンス、どうも今一理解していないようです。
何しろプログラム自体ちゃんと勉強したものじゃないもので、
どうしても書くものがフラットになりがちなのですが、ちょっと複雑なものを
strictに書こうとすると避けて通れないですよね。
本はもっぱらオライリーのものを、初めての〜とかプログラミングperlとか
CGIプログラミング、あと関係ないですけどjava scriptとか読んでますが、
なかなか奥が深いですよね。
僕としては大物で(僕にとってはですが)一から作った二つ目ですが、
アドバイスのおかげで何とかものになりそうで、ほっとしました。
クックブック欲しいなあと思ってますが、実用perl〜、は僕には難しすぎるでしょうか。
0267nobodyさん
03/07/06 19:04ID:AvDpfWTI何行目にあるかを表示したいのですがうまくいきません
$name = $in{'name'};
&jcode'convert(*name,"sjis");
if(!open(OUT,"$file")){&error(err_file);}
flock(OUT,2);
@DATA = <OUT>;
flock(OUT,8);
close(OUT);
$count = @DATA;
$i = 0;
$found = -1;
while($i<$count){
($chk[$i]) = split(/\,/,$DATA[$i]);
if($chk[$i] eq $name){
$found = $i;
}
$i ++;
}
こうしたのですが該当するものを入力してテストしてみたのですが
全部 -1 になってしまうのですがどうしたらいいのでしょうか?
テキストファイルはこういう感じです。読み込みは出来ています。
データ1
データ2
データ3
・
・
・
0268nobodyさん
03/07/06 19:08ID:???($chk[$i]) = split(/\,/,$DATA[$i]);
何がしたいんだ、ここんところ。
この行について自分の言葉で自分の意図するところを明確に書きなさい。
そしたら多分、解決できるから。
0269nobodyさん
03/07/06 19:11ID:???0270267
03/07/06 19:11ID:AvDpfWTI$chkに$i行目のデータを$nameと比較するために読み込んで格納している
つもりなのですが・・
0271nobodyさん
03/07/06 19:14ID:???0272267
03/07/06 19:21ID:AvDpfWTIwhileのあとにprintしてみたら表示できるのですが
whileの中でprintしたらエラーになってしまいました・・
0273267
03/07/06 19:25ID:AvDpfWTIテキストファイルの中身が全部読み込まれて表示はされました。
でも検索結果だけが出ません・・-1のままです。
0274267
03/07/06 19:45ID:AvDpfWTI$i = 0;
$found = -1;
while($i<$count){
($chk[$i]) = ($DATA[$i]);
print $chk[$i];
if($chk[$i] eq $name){
$found = $i;
}
$i ++;
}
今こんな感じですが $found の値が -1 です・・
0275nobodyさん
03/07/06 19:50ID:???chop;
$_ eq $name and $found,last;
}
0276275
03/07/06 19:51ID:???まちがった
0277nobodyさん
03/07/06 19:54ID:???なんか、メチャクチャだな…。
ひょっとして @chk に見つかった行を格納したいのか?
ち ゃ ん と 期 待 し た い 結 果 を 明 記 し て く だ さ い
で、俺ならこうする
# @chk にヒットした行番号を格納
# 検索対象は $name
# $[ を 0 と仮定する
$i = $j = 0;
foreach ( @DATA ) {
if ( $_ eq $name ) {
$chk[ $i++ ] == $j;
}
++$j;
}
0278267
03/07/06 19:55ID:AvDpfWTIありがとうございます。それでやってみたのですがやはり -1 のままでした。。
0279nobodyさん
03/07/06 20:00ID:???/$name/
↑これで OK ってオチじゃねーだろーなぁ?
$_ eq $name は「完全に一致」ってこと解ってる? >>267
0281nobodyさん
03/07/06 20:02ID:???で、$nameが含まれてるものを知りたいんだろう?
$chk[$i] eq $name じゃなくて、マッチ演算子使うとか・・・
$KEKKA = $DATA[$i] =~ m/$name/;
0282267
03/07/06 20:08ID:AvDpfWTI$chkに一旦格納したものを$nameと比較して一致なら$foundに行数を格納というつもりでした。
277さんの方法でやってみてもだめでした・・
どこかおかしくて微妙に完全一致してないのかとも考えたのですがそうでもないような
気もしたりします。
ちょっと今から出かけますすみません・・・
0283nobodyさん
03/07/06 20:16ID:???あと、$found はマッチした行数のことか?
# [廃止] @chk にヒットした行番号を格納
# 検索対象は $name で完全一致
# $found にはマッチした行数が入る。0ならマッチなし
# $[ を 0 と仮定する
&jcode'convert( *DATA, 'sjis' );
$found = 0;
foreach ( @DATA ) {
chop ; # 行末の \n を削除
++$found if ( $_ eq $name ) ;
}
0284あぼーん
NGNG0285nobodyさん
03/07/06 21:34ID:???if($chk[$i] eq $name){
を
print "!$chk[$i]!=!$name!"; ←文字列の両端に何か文字入れてprint
if($chk[$i] eq $name){
にしてやってみろ。多分分かる。
0286nobodyさん
03/07/06 21:35ID:???print "!$chk[$i]!=!$name!"; ←文字列の両端に何か文字入れてprint
を
print "!$chk[$i]!=!$name!\n"; ←文字列の両端に何か文字入れてprint
に変えてくれ。
0287nobodyさん
03/07/06 21:55ID:???とにかく$chk[$i]があやしいことだけは確か
0288nobodyさん
03/07/07 01:00ID:???0289267
03/07/07 01:07ID:kYkAMaKH0290267
03/07/07 01:29ID:kYkAMaKHよく見たら改行が入っていました。おれの変なソースをわざわざ見ていただき
みなさんありがとうございました。
こういう風にしました
$count = @DATA;
$i = 0;
$found = -1;
while($i<$count){
($chk[$i]) = ($DATA[$i]);
$chk[$i] =~ s/\n//g;
if($chk[$i] eq $name){
$found = $i + 1;
}
$i ++;
}
かなり下手なやり方なんだろうと思いますが許してくださいごめんなさい・・
0291267
03/07/07 01:29ID:???0292nobodyさん
03/07/07 01:31ID:???↓次に質問
0293nobodyさん
03/07/07 01:36ID:???0295nobodyさん
03/07/07 01:40ID:???大体、$chk って何のためのデータよ?
データをやたらコピーとかするからおかしくなったり混乱したりするんだよ。
変更しないデータならコピーして使うなよ
0296nobodyさん
03/07/07 01:42ID:???0297267
03/07/07 02:51ID:???0298wakaba
03/07/07 08:49ID:rYaKDTZH環境
FreeBSD
perl version 5.005_03
ImageMagick、GD、インストール済
ImageMagick、GDとも、基本的なコマンドが使えるのは確認済
自分的にやってみた方法
1)レンタルサーバ管理会社に
日本語TrueTypeFontのインストールを依頼。
-> ports で ja-truetypefont をインストール完了。
2)サーバを検索し、インストールされた日本語ttf は
/usr/X11R6/lib/X11/fonts/TrueType/wadalab-gothic.ttf
/usr/X11R6/lib/X11/fonts/TrueType/watanabe-mincho.ttf
であろうと見当を付る。
0299wakaba
03/07/07 08:50ID:rYaKDTZH3)下記のようなスクリプトを作成、実行。
$imagemagick = Image::Magick->new;
$infile = "/hogehoge/infile.gif";
$outfile = "/hogehoge/outfile.gif";
$imagemagick->Read($infile);
$text = Jcode::convert('日本語を描画する試験','sjis');
$imagemagick->Annotate(font=>'/usr/X11R6/lib/X11/fonts/TrueType/watanabe-mincho.ttf', pointsize=>18, fill=>'green', text=>$text, x=>20, y=>100 );
$image->Write($outfile);
4)結果
エラーは出ませんが、日本語が文字化けして描画されています。
別にImageMagickやGDを使わなくても良いです。
何か良い解決策をご存知の方はいらっしゃいますでしょうか?
0300nobodyさん
03/07/07 09:20ID:???それよりも、ImageMagick は日本語対応してるの?
300 GET ⊂(゚Д゚⊂⌒`つ≡≡≡(´⌒;;;≡≡≡
0301nobodyさん
03/07/07 10:02ID:???Jcodeの使い方おかしいんじゃない?
レガシースタイルでconvert使うならjcode.plと同じだよね。
スカラで受けた場合は変換した結果ではなく、変換した文字コードが
戻り値だし、第一引数がそれだと何も返ってこない。
$text = '日本語を描画する試験';
$text = jcode::convert(\$text, 'sjis');
print $text;
出力 sjis
$text = jcode::sjis( '日本語を描画する試験');
print $text;
出力 日本語を描画する試験
手元にJcode.pm入ってるのなくてjcode.plでやったんだけど。
0302wakaba
03/07/07 10:25ID:rYaKDTZH>300 さんへ
ImageMagick の日本語対応の件は不明です。
レンタルサーバに問い合わせました。
>301 さんへ
$text = Jcode::convert('日本語を描画する試験','sjis');
は確かにレガシー記法ですが、当サーバでテキスト処理は出来ています。
しかし、念のためOOPで
$text = Jcode->new('日本語を描画する試験')->sjis;
のように文法を変え、
300さんの指摘通りjis、euc、utf8と確認しましたが
全て文字化けしました。
0303nobodyさん
03/07/07 10:34ID:???Jcode.pmはconvert($text, $encoding)のような書き方にも対応してるが
0304nobodyさん
03/07/07 10:43ID:???0305nobodyさん
03/07/07 10:54ID:???違うのはわかるけど、マニュアルに
Jcode::convert($str, [$ocode, $icode, $opt]);
jcode.pl Users: This function is 100% upper-conpatible with jcode::convert() !
こう書いてあったからjcode.plでやってみただけ
0306nobodyさん
03/07/07 11:00ID:???昔、knj2gifというCのソースを配ってる方がいらっしゃいましたが、
もう配布をやめちゃってるようです。10年くらい前の話ですが・・・。
少なくともImageMagickで日本語化に成功してる人はいるので、
何かしら設定ミスがあると思うのですが。
>>305
「Upper-Compatible」ってのは、
「jcode.plのスタイルで書いてもエラーを起こさない」
だけで、
「jcode.plのスタイルでエラーならJcode.pmのスタイルでもエラー」
って意味じゃない。
どうでもいいけど、こがいさん「compatible」の綴り間違えてるね>ドキュメント
0307nobodyさん
03/07/07 12:18ID:???"bukken" => "EUCの文字",
"basyo" => "EUCの文字",
"comment" => "EUCの文字",
};
$houselist[1] = {
"bukken" => "EUCの文字",
"basyo" => "EUCの文字",
"comment" => "EUCの文字",
};
$houselist[2] = {
"bukken" => "EUCの文字",
"basyo" => "EUCの文字",
"comment" => "EUCの文字",
};
っていうリファレンスの、「EUCの文字」という部分を、
jcode.plを使って全部sjisにしたいのですが、
どのようにすればいいのでしょうか?
for ($i=0;$i<=$#houselist;$i++){
#この部分が不明です・・・・
}
0310307
03/07/07 15:15ID:???とすると、hosuelistの中身がまったくなくなってしまうのですが・・・
(&jcode::convert(*houselist, 'sjis' ); の1行をコメントアウトすると、
文字化けした状態で表示されます)
(ちなみに、HTML:Template のLOOP使って表示させてます)
0311nobodyさん
03/07/07 15:21ID:???例えば(.*)は$1で取り出せる?訳ですが、
これを一度に複数扱う場合はどうすれば良いのでしょうか?
(.*)(.*)とあった場合は$1,$2って具合で良いのですか?
判り難いかもしれませんがお教え下さい。
0312wakaba
03/07/07 15:35ID:rYaKDTZH>304 さんへ
レンタルサーバ管理会社に
Ports の japanese/gd で GDが日本語化するか確認してみます。
ただ、GIFを使用したいので、
現在GDはあえてversionの古いものを使用しています。
(最新版のGDはGIFが使用出来ない、とのことでしたので。)
よってGDは今回の目的で使用出来ない可能性が高いです。
>306 さんへ
Cは当方よく解らないので、当座の解決として難かしいものがあります。
ImageMagickで日本語化に成功している人がいる、とのことですので、
レンタルサーバ管理会社にImageMagickの設定を再度チェックさせる方針で
臨んでみます。
みなさんどうもありがとうございました。
また解決しましたら、顛末を記入させて頂きます。
0314wakaba
03/07/07 15:58ID:rYaKDTZH盲人が盲人の手を引くようで気がひけますが。。。
foreach(@houselist){
jcode::convert(\$_->{bukken} , 'sjis' );
jcode::convert(\$_->{basho} , 'sjis' );
jcode::convert(\$_->{comment}, 'sjis' );
}
これで変換されませんか?
0315nobodyさん
03/07/07 15:58ID:???ほい。
jcode::convert(\$houselist[$i]->{$_}, 'sjis') foreach (keys %{$houselist[$i]});
自分なら、ハッシュに展開する前か、表示する直前(フォーマットを整えてから)に
変換するけどね。
0317nobodyさん
03/07/07 16:39ID:???12345678 を、12,345,678 に変換するにはどうすればいいのでしょうか?
0318nobodyさん
03/07/07 16:41ID:???コシキタソですか?
まぁいいですが、、る
0321nobodyさん
03/07/07 18:41ID:???0322nobodyさん
03/07/07 18:52ID:???0323nobodyさん
03/07/07 23:41ID:C7AyQ56Asort {$form{$a} <=> $form{$b}} keys %form
このように定義したのですが、これでは未定義の値が数値より上に
きてしまいます。
sort {($form{$a} <=> $form{$b}) <=> ""} keys %form
こんな感じでやったりいろいろ試したのですが、どうしても数字が
上にきてくれません。
ご存知方がいらっしゃいましたら、教えてください。
宜しくお願いいたします。
0324あぼーん
NGNG未定義値は数値に変換すると0になるからだよ。
後ろに行って欲しいならありえないくらい大きな値にすればいい。
my $infinity = 10000 ** 10000;
# 方法その1
@result = sort {
(defined($form{$a}) ? $form{$a} : $infinity)
<=> (defined($form{$b}) ? $form{$b} : $infinity) } keys %form;
# 方法その2 "シュワルツ変換"イディオムを使う。
# データが多い場合はこっちの方が速い。
@result = map{ $_->[0] }
sort{ $a->[1] <=> $b->[1] }
map{ [ $_, defined($form{$_}) ? $form{$_} : $infinity ] } keys %form;
0326nobodyさん
03/07/08 00:17ID:???sort { not defined $form{a} <=> not defined $form{b} }
sort { $form{$a} <=> $form{$b} } keys %form;
0328nobodyさん
03/07/08 00:40ID:???うーん、どうもうまくいきません。
同じように数字が下にきてしまいます。
もう少し調べてみます。
>>327
ご返答有難うございます。
参考にさせていただきます。
0329nobodyさん
03/07/08 00:42ID:d6QOcge5<input type="submit" value="送信"style="background:#ffffff"
onmouseover="this.style.background='#000000'"
onmouseout="this.style.background='#ffffff'">
を、.cgi内の
<input type=submit value=\"送信\">
に組み込みたいのですが
どこをどう変えればいいのでしょうか?
教えてください。
0331329
03/07/08 00:53ID:???逝ってきます。
0332nobodyさん
03/07/08 01:05ID:???ごめんな。動作確認してなかった。
@result =
sort { !defined $form{$a} <=> !defined $form{$b} }
sort { $form{$a} <=> $form{$b} }
keys %form;
優先度がnotよりも<=>の方が高いし…
0333nobodyさん
03/07/08 01:07ID:???0334nobodyさん
03/07/08 02:11ID:???´−`).oO(素直に最初に分けたらあかんの…?)
my(@defined_key, @undef_key);
defined $_ ? push @defined_key, $_ : push @undef_key, $_ for keys %form;
my @result = (sort { $form{$a} <=> $form{$b} } @defined_key), @undef_key;
0335250
03/07/08 02:26ID:gC7FPuySEffective Perl
名前は聞いたことはありましたが、改めてネットでいろいろと
レビュー見てみました。
なんか、とってもそそられる本のようで、仰るとおり
値段もそんなに高くないし、何しろあまり厚そうじゃないのが
よさそうです。
何しろperl DBIと、あとプログラミングperl第三版のどっちかの
二冊抱えて電車乗ってるんです、最近。。。。
重いんですが、つい抱えて出かけてしまうのです。
紹介、ありがとうございました。
0336nobodyさん
03/07/08 02:51ID:???それでやってもいきませんでした、、、
うーん、深いです、、、
考えるだけ考えてみたいと思います。
いろいろとご支援有難うございます。
0337nobodyさん
03/07/08 03:21ID:???#!/usr/bin/perl
use LWP::UserAgent;
$ua = LWP::UserAgent->new;
$ua->agent("$0/0.1 " . $ua->agent);
$req = HTTP::Request->new(GET => 'http://www.yahoo.co.jp/');
$req->header('Accept' => 'text/html');
# リクエストの送信
$res = $ua->request($req);
# 出力のチェック
if ($res->is_success) {
print $res->header; # ヘッダー全体を出したいっ!!
print $res->content;
}
else {
print "Error: " . $res->status_line . "\n";
}
print $res->header; のところで、レスポンスヘッダー全体を出力したいのですが、
何故か、空が返されます
0338nobodyさん
03/07/08 03:38ID:???$res->headers->as_string; …かな。
ttp://member.nifty.ne.jp/hippo2000/perltips/HTTP/Response.html
ttp://member.nifty.ne.jp/hippo2000/perltips/HTTP/Message.html
ttp://member.nifty.ne.jp/hippo2000/perltips/HTTP/Headers.html
0339262
03/07/08 10:48ID:yiVOHQJTもう一度ソース貼ります。
eval{ flock(FILE,2); };
if($@){ &MkDIR ; }
$@ は直前の eval のエラーが格納されるということで
flock 関数が使えなかった場合の保険に mkdir でロックしたい。
ということなんです。
けど、エラーが出ないということは $@ には何も入らないという事になるんでしょうか?
結局はflock が使えるのか使えないのかを知りたいということなんですが判断の仕方が解らないんです。
最初から他のファイルロック方法を実現しろという話は無しの方向で。
ご意見お願いします。
0342nobodyさん
03/07/08 11:51ID:???Windowsだと、9x系はエラー(かどうかは分からんが、evalらずに素で実行すると
スクリプトは停止)になるよ。
ちゃんと確認したいところだけど、うちは全部NT系にしちゃったんで。
0343nobodyさん
03/07/08 12:17ID:???レスありがとうございます。しかし、期待したデータではありませんでした…。
期待するデータは HTTP/1.x 200 OK とかサーバーが返すレスポンスヘッダーなんです。
0344nobodyさん
03/07/08 12:34ID:???ヘッダじゃなくレスポンスコードだろ
>print $res->header; # ヘッダー全体を出したいっ!!
print $res->code . $res->message;
0345nobodyさん
03/07/08 13:02ID:???6.1 ステータスライン
レスポンスメッセージの最初の行は、プロトコルのバージョン、ステータスコード番号、それに関連したテキストフレーズからなるステータスラインで、それぞれの要素は、SP によって分けられる。最後の CRLF シーケンス以外には、CR も LF も許されない。
Status-Line = HTTP-Version SP Status-Code SP Reason-Phrase CRLF
6.2 レスポンスヘッダフィールド
レスポンスヘッダフィールドを用いて、サーバはステータスラインに置けないレスポンスに関する追加的な情報を渡すことができる。これらのヘッダフィールドは、サーバについてや、 Request-URI によって識別されるリソースへの更なるアクセスに関する情報を与える。
0346nobodyさん
03/07/08 13:11ID:???すいません…。
HTTP/1.0 200 OK
Date: Tue, 08 Jul 2003 04:10:07 GMT
Server: Apache/2.0.46 (Unix) mod_perl/1.99_09 Perl/v5.8.0 mod_ssl/2.0.46 OpenSSL/0.9.6g DAV/2 FrontPage/5.0.2.2634 PHP/4.3.2 mod_gzip/2.0.26.1a
Last-Modified: Tue, 08 Jul 2003 04:09:31 GMT
ETag: "84f45-3d4e-63ccb4c0"
Accept-Ranges: bytes
Content-Length: 15694
Vary: Accept-Encoding
Keep-Alive: timeout=15, max=100
Connection: Keep-Alive
Content-Type: text/plain
↑こういうのが欲しいんです。
0347nobodyさん
03/07/08 13:49ID:???お前はアホか。
http://member.nifty.ne.jp/hippo2000/perltips/HTTP.html
をディスプレイに穴があくほど読め
0348nobodyさん
03/07/08 14:22ID:???my @result = sort { !defined $form{$a} ? 1 :
(!defined $form{$b} ? -1 : $form{$a} <=> $form{$b}) } keys %form;
こういうことじゃなくて?
それとももっとスマートに書けってこと?
■ このスレッドは過去ログ倉庫に格納されています