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

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

■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん2011/09/09(金) 18:11:49.71ID:???
Perlのコーディングで困ってる人のスレです。

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

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

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

お勧めサイトは >>2 以降

前スレ http://hibari.2ch.net/test/read.cgi/php/1295170172/
0002nobodyさん2011/09/09(金) 18:12:10.08ID:???
[プログラミング自体の経験が無い奴はまずココを読め]
Perlプログラミング講座: ttp://www.site-cooler.com/kwl/perl/

[本]
リャマ: ttp://www.oreilly.co.jp/books/4873111269/
駱駝: ttp://www.oreilly.co.jp/books/4873110963/
Effective Perl: ttp://ascii.asciimw.jp/books/books/detail/4-7561-3057-7.shtml
クックブック: ttp://www.oreilly.co.jp/books/4873112028/
Perl ベストプラクティス: ttp://www.oreilly.co.jp/books/4873113008/
Perl Hacks: ttp://www.oreilly.co.jp/books/9784873113142/

[オンラインマニュアル]
最新のドキュメント: ttp://perldoc.perl.org/
perldoc きまぐれ訳: ttp://fleur.hio.jp/perldoc/
perldoc.jp: ttp://perldoc.jp/

[モジュール]
CPAN: ttp://search.cpan.org/
河馬屋二千年堂: ttp://homepage3.nifty.com/hippo2000/

[テクニック]
Perlメモ: ttp://www.din.or.jp/~ohzaki/perl.htm
Perlのページ: ttp://homepage1.nifty.com/nomenclator/perl/
Perlの小技: ttp://homepage3.nifty.com/hippo2000/perltips/

[Perl5.8Unicodeメモ]
ttp://www.namazu.org/~tsuchiya/perl/perl-5.8.html
ttp://www.lr.pi.titech.ac.jp/~abekawa/perl/perl_unicode.html
0003nobodyさん2011/09/09(金) 19:26:14.96ID:???
>>1
0004nobodyさん2011/09/12(月) 12:01:09.82ID:???
[
{
key1 => 123,
key2 => 456,
},
{
key1 => 324,
key2 => 135,
},
{
key1 => 123,
key2 => 135,
},
続く...
]
こんな感じの配列をソートするにはどういう方法が最適でしょうか?
key1で昇順にソートして、key1が同じ場合はkey2で降順にソートします。
key2も同じ場合はどちらが先になってもかまいません。
0005nobodyさん2011/09/12(月) 12:40:13.04ID:???
sort { $a->{key1} <=> $b->{key1} || $b->{key2} <=> $a->{key2} } @$aref
0006nobodyさん2011/09/12(月) 12:51:03.86ID:???
ありがとうございます。||こんなのつかえたんですね。
0007Perl忍者2011/09/12(月) 18:53:28.33ID:???
>>5
こいつは上忍級
0008nobodyさん2011/09/12(月) 19:06:55.08ID:???
どあほ、perldoc -f sort に書いてある程度の
基礎の基礎じゃねーか。
0009nobodyさん2011/09/12(月) 21:12:13.88ID:sQBBrYdo
全スレでファイルのロックの質問があったけど
読み込んで表示のみ=ロックの必要はない

読み込んだデータを加工して書き込む場合=

ファイルロック1
ファイル読み込み
データ加工
ファイル書き込み
ファイルロック1の解除

というようにするが正解だろ

読み込んで表示のみにロックする必要あったら
普通のHTMLファイルだってロックしなきゃならんだろ
0010nobodyさん2011/09/12(月) 21:20:12.75ID:???
読み込んでる途中にファイルが書き換えられても困らないんならする必要はないよ





flockとはなんだったのか
0011nobodyさん2011/09/12(月) 21:28:34.15ID:???
>>9-10
>>1
【総合】 Webprog板質問雑談スレッド 1
http://hibari.2ch.net/test/read.cgi/php/1131016915/
0012nobodyさん2011/09/12(月) 21:37:37.12ID:???
余りに遅レスって批判は出来るにせよ、質問に答えてるじゃん
0013nobodyさん2011/09/15(木) 00:40:46.86ID:???
データベースやってれば
書き込みロックと読み込みロックが
あることぐらい知ってるだろ。
0014nobodyさん2011/09/15(木) 12:48:03.24ID:???
フォームのPOST情報を送ったあとのページを取得し、HTML::TreeBuilderあたりで
情報を取得しようとしています。
下記だと@はヘッダ?の情報が出てきますが、Aは何も出てきません。
どこか間違えているのでしょうか?

my $url = 'http://example.com';

my $formdata = ['id' => '***', 'pass' => '***'];
my $request = POST($url, $formdata);
my $ua = LWP::UserAgent->new;
my $res = $ua->request($request);

print $res->as_string; #@
print $res->content; #A

#my $tree = HTML::TreeBuilder->new;
#$tree->parse($res->content);
#$tree->eof();
0015nobodyさん2011/09/15(木) 13:12:03.71ID:???
as_string()はHTTP::Responseの全文、つまりheader+body
content()はbodyを返す

example.comを見るならば、Content-Length: 0なんで当然content()は空になる
0016142011/09/15(木) 13:39:08.06ID:???
>>15
example.comは仮で書いただけなんですが、そのことを書いていませんでした。
失礼しました。

コード的には間違っていないようなので、別の要因を探ってみます。
ありがとうございました。
0017nobodyさん2011/09/18(日) 03:39:18.09ID:bhwW9jAX
すいません、質問です

foreach $data (@isbn){
if(length($data) != 13){
$error_message = "length error";
break;
}
if($data =~ /[^0-9]/){
$error_message = "charactor error";
break;
}
}

$dataに入っている数字が13文字以外の時と、0-9の数字以外の時に
#error_messageにエラーを書き込んでforeachループを抜けるようにしたいのですが、なぜか13文字&数字だけの時にも両ifともtrueになってしまいます。

先に述べている動作をさせたい時の条件の書き方を教えていただけないでしょうか?
0018nobodyさん2011/09/18(日) 03:40:47.27ID:bhwW9jAX
foreach $data (@isbn){
    if(length($data) != 13){
        $error_message = "length error";
        break;
    }
    if($data =~ /[^0-9]/){
        $error_message = "charactor error";
        break;
    }
}

見づらいだろうので修正
0019nobodyさん2011/09/18(日) 04:16:55.44ID:???
例えばどんな@isbn?
0020nobodyさん2011/09/18(日) 04:18:05.84ID:bhwW9jAX
ほんとにすいません、フォームから送ったデータに改行コードが入ってたせいでおかしくなってたようです
失礼しました・・・。
0021nobodyさん2011/09/18(日) 04:20:28.78ID:???
my $error_message;
for my $data (@isbn){
if (length $data != 13){
$error_message = "length error";
last;
}
if ($data !~ /^\d+$/){
$error_message = "charactor error";
last;
}
}



次から >>1 には「use strict; use warnings; を必ず使う事」とでも書いとけ。
■ このスレッドは過去ログ倉庫に格納されています