[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 801- 901- 1001- 2chのread.cgiへ]
Update time : 04/25 05:23 / Filesize : 232 KB / Number-of Response : 1002
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

Perlについての質問箱 50箱目



1 名前:デフォルトの名無しさん [2012/01/18(水) 02:58:16.13 ]
CGI についての質問は板違いです。WEB プログラミング板でどうぞ。
CGI と Perl の区別がつかない人も WEB プログラミング板に行ってください。
(WEB プログラミング板: hibari.2ch.net/php/ )

このスレでは(CGI 以外の)純粋にPerlのみに関係する質問を取り扱っていこうと思います。
スレ違いの質問にはスルーか、速やかな誘導をお願いします。

"The duct tape of the Internet" こと、Perl についての質問箱です。
"There's more than one way to do it" ということで、
Perl の奥深さについて皆で語り合い、追求してまいりましょう。

www.perl.org/get.html
● 2011/10/30 現在の最新版: 5.14.2

▼ 前スレ
Perlについての質問箱 49箱目
toro.2ch.net/test/read.cgi/tech/1319953460/
リンク集は >>2-3辺り
Perl 日本語処理の基礎の基礎 >>4辺り

562 名前:デフォルトの名無しさん mailto:sage [2012/02/11(土) 21:58:35.86 ]
>>560
だからお前はどこの異次元のぞいてんだ
希望の書式 とか何かカッコイイ単語並べて悦にドハマりしてんじゃーよwww
そのクソ書式がどこにあんだよ


563 名前:デフォルトの名無しさん mailto:sage [2012/02/11(土) 22:01:02.38 ]
>>561
my $s = (time % 60);
my $time = time - $s + (($s > 0) ? 60 : 0);

これでよろしいか?
例出して答えろよ。

>>562
お前は黙ってろ

564 名前:デフォルトの名無しさん mailto:sage [2012/02/11(土) 22:04:19.02 ]
>>563
> 例出して答えろよ。
恥かいたからって八つ当たりかえ?

565 名前:デフォルトの名無しさん mailto:sage [2012/02/11(土) 22:08:06.12 ]
>>564
何言ってんだ?

「こうだろうがハゲ」とでもいいながら
正しい式書けって言ってんだ。
質問スレで質問でも回答でもない糞レスを増やすな

566 名前:デフォルトの名無しさん mailto:sage [2012/02/11(土) 22:10:50.26 ]
>>565
分からない時には逆ギレするように小学校で習ったのか、坊主?

567 名前:デフォルトの名無しさん mailto:sage [2012/02/11(土) 22:11:36.37 ]
>>563
> my $s = (time % 60);

また恥を増やすつもりか
それともオレのおなかをよじれさせるつもりかよwwwww
はたまた引っ掛けとか釣りかよwwww
$$$$$$$$$$$$


568 名前:デフォルトの名無しさん mailto:sage [2012/02/11(土) 22:12:57.50 ]
>>566
う〜ん?
ちょっと言ってる意味が分からない

>>567
さっぱり、お前の言ってる意味がわからん。
大丈夫か?

569 名前:デフォルトの名無しさん mailto:sage [2012/02/11(土) 22:18:56.85 ]
time + 60 で秒を使わずに 00 にして十分かと

my($year,$month,$day,$hour,$min) = (localtime(time + 60))[5,4,3,2,1];
my $tatoeba = sprintf('%04d-%02d-%02d %02d:%02d:00', 1900+$year,$month+1,$hour,$min);

こんな感じ。釣りなのは分かってるけどね。

570 名前:デフォルトの名無しさん mailto:sage [2012/02/11(土) 22:20:32.13 ]
$day が抜けてたwごめんね



571 名前:デフォルトの名無しさん mailto:sage [2012/02/11(土) 22:21:02.74 ]
バグ入りコードを晒した>>555が必死で火消し中w
だがもう涙で画面が見えないw

572 名前:デフォルトの名無しさん [2012/02/11(土) 22:23:49.16 ]
原因は>>548
この程度も分からない池沼ってコピペでしかプログラム組めなくね?
何でこの板にいんの?

573 名前:デフォルトの名無しさん mailto:sage [2012/02/11(土) 22:24:52.04 ]
でもこんなことも他人に聞く時代になったんだね。
未来にはどんな質問がされることやら。

574 名前:デフォルトの名無しさん mailto:sage [2012/02/11(土) 22:27:25.11 ]
>>569
それだと00秒の時にも繰り上げてしまうのがよくないって、さっき突っ込まれたけど。

それと、標準のlocaltimeは、Time::Pieceが無いのならしょうがないけど、
使えるならTime::Piece使う方が綺麗で簡単だしモダンなんだそうだ。

my $tp = Time::Piece::localtime($time);
print $tp->hms


>>571
どうした?
どこが間違ってるんだ、カッコ付いてるのが気に入らなかったか?

575 名前:デフォルトの名無しさん mailto:sage [2012/02/11(土) 22:32:14.47 ]
> カッコ付いてるのが気に入らなかったか?
こりゃ思った以上に低レベルだわ
頓珍漢にも程がある

576 名前:デフォルトの名無しさん mailto:sage [2012/02/11(土) 22:33:49.32 ]
>>574
>それだと00秒の時にも繰り上げてしまうのがよくないって、さっき突っ込まれたけど。
そんなこと気にしない。
なぜなら 00 秒のときに実時間的には小数点以下の値があるから。
548に聞いてみ。問題ないっていうに決まってるぞ。

577 名前:デフォルトの名無しさん mailto:sage [2012/02/11(土) 22:35:27.72 ]
だいたい、そんなこといってる間に1秒たつだろw

578 名前:デフォルトの名無しさん mailto:sage [2012/02/11(土) 22:37:11.91 ]
>>575
はいはい、低レベル低レベル。

>>576
俺もそう思うけどw
でも指摘されたから修正したけど。

まぁ>>548の質問の内容には十分満たしてるだろ。

579 名前:デフォルトの名無しさん mailto:sage [2012/02/11(土) 22:44:15.09 ]
time + 60 # 分で切り上げ
time + 60*60 # 時間で切り上げ
time + 60*60*24 # 日で切り上げ

my($year,$month,$day,$hour,$min) = (localtime(...))[5,4,3,2,1] # 分単位で取得
my($year,$month,$day,$hour) = (localtime(...))[5,4,3,2] # 時間単位で取得
my($year,$month,$day) = (localtime(...))[5,4,3] # 日単位で取得

こういうの、モダンのやり方だと解法が見えてこないよね。


580 名前:デフォルトの名無しさん mailto:sage [2012/02/11(土) 22:45:41.47 ]
440 : 名無しさん@お腹いっぱい。 : 2011/07/04(月) 00:00:00.00 ID:lVHU+IzZ0

誰だよ実質的に小数点以下の値がある とか穂剤てるアフォは
そういうバグ野郎はさっさと寝ろよ




581 名前:デフォルトの名無しさん mailto:sage [2012/02/11(土) 22:47:03.44 ]
>>579
うん?

>>563>>574 の方法でできる

582 名前:デフォルトの名無しさん mailto:sage [2012/02/11(土) 22:47:22.68 ]
ここは、自分の都合に合わせて問題を勝手に変えてしまう
ゆとりPGが楽しく集う場所みたいだなw

583 名前:デフォルトの名無しさん mailto:sage [2012/02/11(土) 22:48:05.37 ]
覚えたてで使ってみたくてしょうがないんだろな、オブジェクト指向。
気持は分かる。

584 名前:デフォルトの名無しさん mailto:sage [2012/02/11(土) 22:50:50.26 ]
>>582-583
一人事じゃなくちゃんとアンカーつけようねー

585 名前:デフォルトの名無しさん mailto:sage [2012/02/11(土) 22:51:55.43 ]
学校のパールはPerl4かもしれないしね

586 名前:デフォルトの名無しさん mailto:sage [2012/02/11(土) 22:54:52.28 ]
>時間を分単位とかで切り上げしたいのですが
>『どうやったら』いいのでしょうか
プロセスを質問しているようなので、回答もプロセスがよろしいかと。

587 名前:デフォルトの名無しさん mailto:sage [2012/02/11(土) 22:55:09.67 ]
>>585
そんなバカなw
そんな学校辞めてOKだろw

万が一そうだったり、Perl4で強いたげられているんだ!だったら、
まぁその環境にあった良い感じでw

588 名前:デフォルトの名無しさん mailto:sage [2012/02/11(土) 22:57:00.34 ]
そこは 強いられているんだ!!! だろ

589 名前:デフォルトの名無しさん mailto:sage [2012/02/11(土) 22:59:43.60 ]
>>588

J( 'ー`)し ごめんね。おかあさんはじめて「強いられているんだ」使ったから、ごめんね。

590 名前:デフォルトの名無しさん mailto:sage [2012/02/11(土) 23:00:01.84 ]
しいたけたいらげている?



591 名前:デフォルトの名無しさん mailto:sage [2012/02/11(土) 23:01:39.30 ]
そもそも元の質問がPerl特有のものじゃなかったしな

592 名前:デフォルトの名無しさん mailto:sage [2012/02/11(土) 23:01:52.39 ]
おれなら秒単位で出力して、読むときに分単位で切り上げるけどな、キリッ

593 名前:デフォルトの名無しさん mailto:sage [2012/02/11(土) 23:04:04.92 ]
バカガキ>>548に踊らされるアホ住人

594 名前:デフォルトの名無しさん mailto:sage [2012/02/11(土) 23:04:45.12 ]
小学生の頃だったら、迷わずrootで1分進めとくオレだけどなw

595 名前:デフォルトの名無しさん mailto:sage [2012/02/11(土) 23:04:46.67 ]
バッカでぇーーッす!!!

596 名前:デフォルトの名無しさん mailto:sage [2012/02/11(土) 23:52:09.04 ]
>>585>>587
ねーよww
そんな環境あったら抗議多発するし
今時4のみ対応のテキストなんてどうやって用意すんだよwww

597 名前:デフォルトの名無しさん mailto:sage [2012/02/12(日) 00:34:36.40 ]
($year,$month,$day,$hour,$min) = (localtime(time + 59))[5,4,3,2,1];
$time = sprintf("%04d-%02d-%02d %02d:%02d:00",1900+$year,%month+1,$day,$hour,$min);
でいけそうです。ありがとうございました。

598 名前:デフォルトの名無しさん mailto:sage [2012/02/12(日) 01:16:03.00 ]
義務教育で全生徒が対象なので情報処理の基礎を教えるのが目的です。高度な機能は必要ありません。例えば分の切り上げのようなもので十分です。テキストは教師がプリントを作っています。Perl4を使うことに対して抗議されるほどそもそも授業数がありません。

599 名前:デフォルトの名無しさん mailto:sage [2012/02/12(日) 01:22:04.97 ]
中間の変数を使わない方法は

600 名前:デフォルトの名無しさん mailto:sage [2012/02/12(日) 01:25:43.38 ]
義務教育だから「こそ」せめてPerlなら5以上にしとけと思う俺は異端なのか?



601 名前:デフォルトの名無しさん mailto:sage [2012/02/12(日) 01:25:47.49 ]
>>598
だったらPerlじゃなくてBASICでもLOGOでも使ってれば?

602 名前:デフォルトの名無しさん mailto:sage [2012/02/12(日) 02:01:11.84 ]
それではjcode.plなどの
実践技術を学べないだろう

603 名前:デフォルトの名無しさん mailto:sage [2012/02/12(日) 02:42:57.16 ]
今でもjcode.pl使ってるヤツは、おばか以外の何者でもない。

604 名前:デフォルトの名無しさん mailto:sage [2012/02/12(日) 02:51:07.37 ]
お前KENTさんを侮辱するのか?

605 名前:デフォルトの名無しさん mailto:sage [2012/02/12(日) 02:58:12.61 ]
>>604
正直あの人のスクリプトは、もう古い。
有名だからって、あれを見習っちゃいけない。

606 名前:デフォルトの名無しさん mailto:sage [2012/02/12(日) 03:03:20.23 ]
このスレに質問してくる人の9割がKENT本読んでんじゃね?て感じのコードだしなぁ…

607 名前:デフォルトの名無しさん mailto:sage [2012/02/12(日) 06:15:03.40 ]
>>597
$time = int(($time + 59) / 60) * 60;

608 名前:デフォルトの名無しさん mailto:sage [2012/02/12(日) 12:48:02.97 ]
KENTのPerlスクリプトが
通用したのは2000年ぐらいまでだろうね。

今では、高校生がPerlでこんなのを作ってみましたって
感じにしか見えない。

609 名前:デフォルトの名無しさん mailto:sage [2012/02/12(日) 13:06:30.46 ]
プログラムなんか簡単そうに見えた方がいいだろ
難解なものを有り難がっているうちはビギナー

610 名前:デフォルトの名無しさん mailto:sage [2012/02/12(日) 13:13:01.61 ]
と言う奴が便利なモジュールを使うべきところで全部自分で一から書こうとする


そしてそのスタイルを回りに強要する



611 名前:デフォルトの名無しさん mailto:sage [2012/02/12(日) 14:01:33.05 ]
KENTのコードは、今となっては
モジュールでやればいいものを
自分で実装してるからな。
使えない。

612 名前:デフォルトの名無しさん [2012/02/12(日) 14:15:42.36 ]
俺の頭の中のPerlも2000年頃で止まってるわ

最近の日本語の文字コード変換のトレンドって何?
俺未だにjcode.pm使ってる

DB使うには今でもDBIやDBDモジュール?

use CGI;とか今でも使う?

613 名前:デフォルトの名無しさん mailto:sage [2012/02/12(日) 14:26:33.39 ]
>>612
>最近の日本語の文字コード変換のトレンドって何?
Encode

>DB使うには今でもDBIやDBDモジュール?
基本はそれ、あとはDBIx::*とか、らしい

>use CGI;とか今でも使う?
まあスタンダードだからね
あとはFastCGIとPlackお勧め

614 名前:デフォルトの名無しさん mailto:sage [2012/02/12(日) 14:27:47.26 ]
自分でやれる程度のものなら別にいいだろ
モジュールを使うのは、自分でやってたら何日かかるか判らないような規模のものだ
好奇心で作ってみるには時間が無駄過ぎる

615 名前:デフォルトの名無しさん mailto:sage [2012/02/12(日) 14:34:27.06 ]
モジュールなら、ただ「使い方を覚える」だけでいい。
だが、それに頼り切って頭が腐った奴には
授業で習うレベルの古典的な>>607すら理解できない。

616 名前:デフォルトの名無しさん mailto:sage [2012/02/12(日) 15:05:39.00 ]
>>614
まだ目先のことしか見れてないね。
基本的にこんな感じで選ぶよ。

・標準モジュールは使う
・よく使われてるモジュールは使う
・コードがシンプルになるなら使う

簡単に作れるような内容でもテストまで含めたりすると、
殆どの場合モジュールを使ったほうが速いしね。

逆にモジュールを使わないと判断するのは、そのモジュールがもうメンテされてない。
バグが多い。世の中で誰も使ってない。オーバースペック。こんな所かな。

617 名前:デフォルトの名無しさん mailto:sage [2012/02/12(日) 15:12:39.05 ]
> 世の中で誰も使ってない。オーバースペック。

ようするに「わたしにはそのコード理解でkましぇーーーん!!」
だろ 
先例主義のアフォかよw


618 名前:デフォルトの名無しさん mailto:sage [2012/02/12(日) 15:26:25.77 ]
>>617
なんでそう思ったの?

619 名前:デフォルトの名無しさん mailto:sage [2012/02/12(日) 15:42:41.39 ]
他人のモジュールを使ってバグで悩むのは、作者の想定外のことをするからだ
想定しない作者が悪いというよりも、道具の使い道を把握できない利用者の責任

一度フリーソフトとか作って公開してみるといいよ
何でそんなことに使おうと思ったんだ、みたいな苦情が来るから

620 名前:デフォルトの名無しさん mailto:sage [2012/02/12(日) 15:46:39.08 ]
>>619
抽象すぎて説得力がない。



621 名前:デフォルトの名無しさん [2012/02/12(日) 15:57:58.27 ]
>>613
サンクス!

622 名前:デフォルトの名無しさん mailto:sage [2012/02/12(日) 17:43:13.51 ]
>>619
いや、それは作者のデバッグ力なさすぎな作者の責任だろ。普通に考えて。
想定外の使い方されないようエラーチェックするんだろ?

半角数字入力を期待する処理をする時、
半角数字以外の文字が入力されたらエラーと処理せず、
そのまま放置し不具合出たまま期待と違う処理を続行するような状態を、
「半角数字って書いてんのに、それ以外入力するお前が悪いから知らね」とでも言うのか?

例え日曜プログラマーだったとしても、プログラム作る人間の風上にも置けんな。

623 名前:デフォルトの名無しさん mailto:sage [2012/02/12(日) 18:11:39.10 ]
sub funk1 {
print "argv: @_\n";
}

$funk2 = &funk1;
print $funk2("foo bar");

これを実行すると
argv:
とだけ出力されて何故引数が表示されないのか考えました。
何故print $funk2("foo bar");でコンパイルエラーが出ないのでしょうか? (use strictすると出ますが)
$変数名に()をつけて呼び出す記法は無いと思うのですが。

624 名前:デフォルトの名無しさん mailto:sage [2012/02/12(日) 18:34:31.22 ]
Bareword

625 名前:デフォルトの名無しさん mailto:sage [2012/02/12(日) 18:40:59.78 ]
>>623
なぜ変数名に()を付けてエラーとならないかってのは答えれないけど、
argv: とだけ表示されて、なぜ引数が出力されないかって所は、かなり酷い状態だ・・・・

ちなみに、
sub funk1 {
print "argv: @_\n";
}

$funk2 = \&funk1;
$funk2->("foo bar");

こうすればいいんだけど、もっと基礎をちゃんと勉強しろ

626 名前:デフォルトの名無しさん mailto:sage [2012/02/12(日) 18:43:59.84 ]
リファレンスも知らないバカ

627 名前:デフォルトの名無しさん mailto:sage [2012/02/12(日) 18:45:30.99 ]
またスパルタ教師ぶりたい連中が湧いてきたな
>>625なんか最後の一言で台無し

628 名前:デフォルトの名無しさん mailto:sage [2012/02/12(日) 18:46:34.88 ]
モダンPerlってうっかり車輪の再発明になってしまったモジュールのステマだろ?

629 名前:デフォルトの名無しさん mailto:sage [2012/02/12(日) 18:48:45.01 ]
>>627
普通にそういう状態だから。
答えを示さず煽るだけは嫌いだけど、
この質問はなかなか酷い。
2chで質問してイヤな思いするなら別で質問するんだな。

630 名前:623 mailto:sage [2012/02/12(日) 18:53:17.29 ]
すみません。純粋に疑問点だけを載せればよかったですね。
何故argvしか表示されないのかの理由はわかっています。




631 名前:デフォルトの名無しさん mailto:sage [2012/02/12(日) 18:55:25.58 ]
use strict知ってるのにリファレンス知らない奴なんてそうそういねーだろ

632 名前:デフォルトの名無しさん mailto:sage [2012/02/12(日) 18:56:17.49 ]
現に居てるじゃねーか

633 名前:デフォルトの名無しさん mailto:sage [2012/02/12(日) 18:58:25.45 ]
>>623
        ↓出力する内容
print $funk2("foo bar");
    ↑ファイルハンドル

print $funk2 'foo bar';と等価。

634 名前:デフォルトの名無しさん mailto:sage [2012/02/12(日) 18:58:33.88 ]
>>632>>623を「リファレンスも知らない初心者」と決め付けたかったわけだな
残念、本当の初心者ならuse strictすら使えんよ

635 名前:デフォルトの名無しさん mailto:sage [2012/02/12(日) 19:03:16.88 ]
>>634
知らなかった事、間違ってた事を全力でフォローするな。
知らない事、間違った事を認めれないガキか。
「間違ってましたー、勉強してきまー」くらいで終わらんのか・・最近のガキは・・・

636 名前:デフォルトの名無しさん [2012/02/12(日) 19:04:52.68 ]
>>630 ← で、何でこのゴミは何なの?

637 名前:デフォルトの名無しさん mailto:sage [2012/02/12(日) 19:06:00.24 ]
>>635
>「間違ってましたー、勉強してきまー」くらいで終わらんのか・・最近のガキは・・・
本当にそう言ったとしてもお前らがネチネチと終わらせないわけだが

638 名前:デフォルトの名無しさん mailto:sage [2012/02/12(日) 19:06:14.98 ]
623って頭悪そうPerl関連の本とか5冊も持ってないんじゃね。

639 名前:デフォルトの名無しさん mailto:sage [2012/02/12(日) 19:08:02.35 ]
>>637
それで終わってあとは二度とスレ見なければいい話だろ
>>623みたいなマジキチは2chを便利なオンライン講座と勘違いしてるわけだし

640 名前:デフォルトの名無しさん mailto:sage [2012/02/12(日) 19:08:45.12 ]
>>637
誰かが言ってたけど、2chなんて便所の落書きと同じだ。
その中に有益な情報が紛れてるのを見付け出して利用する。
後はポイだ、ポイ。



641 名前:デフォルトの名無しさん mailto:sage [2012/02/12(日) 19:08:47.46 ]
>>634
perl -e 'my $a="STDERR";print $a("aaaaa");' >/dev/null
aaaaa

おお、ほんとだ。納得しました。

642 名前:デフォルトの名無しさん mailto:sage [2012/02/12(日) 19:09:46.47 ]
間違えた、>>641>>633宛。

643 名前:デフォルトの名無しさん mailto:sage [2012/02/12(日) 19:10:34.50 ]
まともな精神構造してたら他人に質問するのにこんな態度はとらんよ。

親がキチガイなんだろう。
まともにガキ1匹教育できないクズが性欲にまかせてガキ作ったのがこの結果。

>>623の親は社会のお荷物。

644 名前:デフォルトの名無しさん mailto:sage [2012/02/12(日) 19:10:44.26 ]
>>638>>639
なに必死になってんの…

645 名前:デフォルトの名無しさん mailto:sage [2012/02/12(日) 19:12:09.43 ]
>>643
まともな精神構造なら、もし真摯に質問してきても偉そうな態度で答えたりしない

646 名前:デフォルトの名無しさん mailto:sage [2012/02/12(日) 19:13:51.93 ]
>>641
出力先がSTDERRだから表示されるけど、
なぜ一々標準出力を /dev/null へ捨ててるのかが意味不明。

笑えるほど何か、いちいちツッコミ所があるな

647 名前:623 mailto:sage [2012/02/12(日) 19:14:04.54 ]
何か勘違いされていそうですが、僕の書き込みは>>623>>630だけです。
荒れるような質問をしてすみません。>スレ住人

>>633
あー、なるほどそう解釈されたわけですか。
use strict;
sub funk1 {
print "argv: @_\n";
}
open(my $fh, ">test.txt");
print $fh("foo", "bar");

で上手く動きました。ファイルハンドルとして捉えられていたのですね。
$fh("foo", "bar")は関数呼び出しに見えますが、その辺をうまく解釈してくれようとしていたのですね。
ありがとうございました。

648 名前:デフォルトの名無しさん mailto:sage [2012/02/12(日) 19:15:29.32 ]
>>646
STDOUTへの出力じゃないことを強調したかったんで…

649 名前:デフォルトの名無しさん mailto:sage [2012/02/12(日) 19:17:39.91 ]
>>647
こちらこそ申し訳ないです
老婆心ながら、コードの可読性的に$fhと()の間は空けた方が良いですね

650 名前:デフォルトの名無しさん mailto:sage [2012/02/12(日) 19:19:22.51 ]
>>647
無事に動いてよかったよかった^^
謝らなくてもいいよ、ゴミの下げる頭には何の価値もないから^^
解決したならこれでもう二度と来なくていいね^^
荒らしたかったらまたいつでもおいで^^



651 名前:デフォルトの名無しさん mailto:sage [2012/02/12(日) 19:20:55.90 ]
>>647
この場合はB::Deparseを使うと分かる。
文法に悩んだら一度試してみると吉。

perl-users.jp/modules/b_deparse.html

652 名前:デフォルトの名無しさん mailto:sage [2012/02/12(日) 19:22:07.34 ]
>>650 eq >>637か?
非実在下種野郎を自分で演じるとは…

653 名前:デフォルトの名無しさん [2012/02/12(日) 19:22:43.94 ]
>>647
自分の書き込みのせいで荒れてるって自覚あるのにまだ書き込んでるのかこの基地害

654 名前:デフォルトの名無しさん mailto:sage [2012/02/12(日) 19:24:36.65 ]
>>649
荒らし目的で釣り質問してるのに
可読性のいいコード出すわけねえだろバーカ

655 名前:デフォルトの名無しさん mailto:sage [2012/02/12(日) 19:26:01.16 ]
誰か>>648に対するまともな揚げ足取りが思いつかないんでお願いします

656 名前:デフォルトの名無しさん mailto:sage [2012/02/12(日) 19:28:44.16 ]
>>655
その説明でやりたい事の意味がわかったから、
いちいち間違いがないか確認しなくていいw

657 名前:デフォルトの名無しさん mailto:sage [2012/02/12(日) 19:32:05.90 ]
>>623はパソコンの前で腹抱えて笑ってるんだろうな、
ほんと糞だわ

658 名前:デフォルトの名無しさん mailto:sage [2012/02/12(日) 19:35:31.80 ]
釣りでェーーーーっす!!!
バカが大量で今日も飯がウマいでーーーす!!!
プププププ!!!

659 名前:デフォルトの名無しさん mailto:sage [2012/02/12(日) 19:38:34.65 ]
>>597
面白い発想。Time::Pieceでまとめるとこんな感じか。
use Time::Piece;
my $time = localtime(time + 59)->strftime("%Y-%m-%d %H:%M:00");

自分で考えるとこれか、>>607と同じだな。
use POSIX qw(ceil);
my $time = ceil(time / 60) * 60;

660 名前:デフォルトの名無しさん mailto:sage [2012/02/12(日) 20:53:15.49 ]
>>659
素晴らしい
こういうモダン風への書き換えは参考になります



661 名前:デフォルトの名無しさん mailto:sage [2012/02/12(日) 21:04:04.60 ]
やっぱりモダンのほうが見やすいね。

662 名前:デフォルトの名無しさん [2012/02/12(日) 21:17:40.76 ]
printでデバッグログを大量に出してるのですが、オンオフしやすいようにdbgPrint(名前は適当)にそのまま置換して、
sub dbgPrint() {print @_ if ($debug);}
とか書こうとしたのですが、上手くいきません。すごく基本的なことだと思うのですが、
こういうことをしたいときはどうすればいいでしょうか。よろしくお願いします。


663 名前:デフォルトの名無しさん mailto:sage [2012/02/12(日) 21:21:55.63 ]
sub dbgPrint {print @_ if ($debug);}

664 名前:デフォルトの名無しさん mailto:sage [2012/02/12(日) 21:29:47.35 ]
>>662
Sys::Syslog、Log4Perlあたりを使えば、
簡単にデバッグログのON/OFFや
出力先の切り替えができる。

665 名前:デフォルトの名無しさん [2012/02/12(日) 21:32:10.50 ]
@t = localtime( time );
if ( $t[0] != 0 ){
   $t[0] = 0;
   $t[1]++;
   if ( $t[1] >= 60 ){
      $t[1] = 0;
      $t[2]++;
      if ( $t[2] >= 24 ){
         $t[2] = 0;
         $t[3]++;
         if ( $t[4] == 2 ){
            $maxday = 28;
         }elsif ( ( $t[4] == 4 )||( $t[4] == 6 )||( $t[4] == 9 )||( $t[4] == 11 ) ){
            $maxday = 30;
         }else{
            $maxday = 31
         }
         if ( $t[3] > $maxday ){
            $t[3] = 1;
            $t[4]++;
            if ( $t[4] >= 13 ){
               $t[4] = 1;
               $t[5]++;
            }
         }
      }
   }
}

666 名前:デフォルトの名無しさん mailto:sage [2012/02/12(日) 21:33:54.29 ]
>>662
>うまくいきません

↑どううまく行かないのか分かるわけないだろクズ
お前の見た画面が分かるわけないだろキチガイ
レスいらないからとっとと失せろ

667 名前:デフォルトの名無しさん mailto:sage [2012/02/12(日) 21:35:52.29 ]
>>662=ゴキブリ並の知能。

668 名前:デフォルトの名無しさん mailto:sage [2012/02/12(日) 21:37:54.22 ]
>>665
ゴミ?

669 名前:デフォルトの名無しさん [2012/02/12(日) 21:41:08.31 ]
>ゴキブリ
これ最近流行ってんの?
>>662の頭がそのレベルってのは同意だけど

670 名前:デフォルトの名無しさん mailto:sage [2012/02/12(日) 21:44:45.48 ]
>こういうことをしたいときはどうすればいいでしょうか。
本10冊くらい買ってきて読めば?



671 名前:662 [2012/02/12(日) 21:48:59.07 ]
ソース
my $debug = 1;
sub dbgPrint() {print @_ if ($debug);}
&dbgPrint "test\n";

実行結果
String found where operator expected at test.pl line 3, near "&dbgPrint "test\n""
(Missing operator before "test\n"?)
syntax error at test.pl line 3, near "&dbgPrint "test\n""
Execution of test.pl aborted due to compilation errors.

dbgPrintの呼び出しで括弧を付ければ動きました。
&dbgPrint("test\n");


672 名前:デフォルトの名無しさん mailto:sage [2012/02/12(日) 21:54:15.92 ]
>>671
sub宣言時の括弧はいらない >>663

673 名前:デフォルトの名無しさん mailto:sage [2012/02/12(日) 21:55:35.54 ]
>>671
もうおまえ来なくていいから
独り言ならブログに書いてろゴミ

674 名前:デフォルトの名無しさん mailto:sage [2012/02/12(日) 21:56:55.16 ]
もうちと詳しく言うとsub文での()は「引数とらない」て意味
むしろ定数宣言で使われることが多い

675 名前:デフォルトの名無しさん mailto:sage [2012/02/12(日) 21:58:21.17 ]
>>662
なんでロクに質問の仕方も分からないヴァカがここにいるの?

676 名前:662 [2012/02/12(日) 21:59:37.59 ]
括弧を付けてないprint呼び出しがほとんどなので、いちいち括弧をつけるのは大変です。
なにか良いやり方はないでしょうか?
sub宣言時の括弧はこれからやめます。ありがとうございます。Log4PerやSyslogも見ましたが
自分の目的にはちょっと大げさすぎるようで。でもありがとうございます。


677 名前:662 mailto:釣れる釣れるw [2012/02/12(日) 21:59:47.59 ]
サブルーチンの呼び出しには()


678 名前:デフォルトの名無しさん [2012/02/12(日) 22:01:09.77 ]
>>676
情報後出ししてよく平然と質問できるな

679 名前:デフォルトの名無しさん mailto:sage [2012/02/12(日) 22:01:52.99 ]
>>662は荒らしだろ。
スルーしろ。

680 名前:デフォルトの名無しさん mailto:sage [2012/02/12(日) 22:12:37.45 ]
>>676
use CMDMessage;
$dbg = new CMDMessage;
$dbg->output('on');
$dbg->message('デバッグメッセージ');

とか使えば?



681 名前:デフォルトの名無しさん mailto:sage [2012/02/12(日) 22:20:13.06 ]
低レベルな問題を解決できず、
解決方法が分かったし、とりあえず釣りにして行こう的な流れ。

682 名前:デフォルトの名無しさん mailto:sage [2012/02/12(日) 22:22:01.29 ]
何この頭の悪すぎる>>662
必要な情報出さずに質問したうえに、レスがついてから情報出してくるとか
回答者のこととか全く考えてないな。
人格障害じゃね?

683 名前:デフォルトの名無しさん [2012/02/12(日) 22:24:30.60 ]
このスレは質問がなければ存在価値がないんだよ
わざわざ質問してやってるこっ人に感謝しろ糞共が

684 名前:デフォルトの名無しさん mailto:sage [2012/02/12(日) 22:31:15.46 ]
>>683
一番存在価値がねーーーのはオメーだよオメー
さっさと消えろ人糞

685 名前:デフォルトの名無しさん mailto:sage [2012/02/12(日) 22:31:39.70 ]
Perl(笑)

686 名前:デフォルトの名無しさん mailto:sage [2012/02/12(日) 22:32:39.76 ]
>>665
うるう年を考慮してないね

687 名前:デフォルトの名無しさん mailto:sage [2012/02/12(日) 22:55:11.34 ]
@t = localtime( time );
$t[4] += 1; $t[5] += 1900;
if ( $t[0] != 0 ){
   $t[0] = 0;
   $t[1]++;
   if ( $t[1] >= 60 ){
      $t[1] = 0;
      $t[2]++;
      if ( $t[2] >= 24 ){
         $t[2] = 0;
         $t[3]++;
         if ( $t[4] == 2 ){
            if ( ($t[5] % 400) == 0 ){ $maxday = 29; }elsif ( ($t[5] % 100) == 0 ){ $maxday = 28; }
            elsif ( ($t[5] % 4) == 0 ){ $maxday = 29; }else { $maxday = 28; }
         }elsif ( ( $t[4] == 4 )||( $t[4] == 6 )||( $t[4] == 9 )||( $t[4] == 11 ) ){
            $maxday = 30;
         }else{
            $maxday = 31
         }
         if ( $t[3] > $maxday ){
            $t[3] = 1;
            $t[4]++;
            if ( $t[4] >= 13 ){
               $t[4] = 1;
               $t[5]++;
            }
         }
      }
   }
}

688 名前:662 [2012/02/12(日) 22:55:33.91 ]
やっぱりPerlでprintを使うときは括弧を付けたほうが後々いいということですかね。


689 名前:デフォルトの名無しさん mailto:sage [2012/02/12(日) 23:06:50.86 ]
Smart::Commentsが超便利
ttp://d.hatena.ne.jp/kkobayashi_a/20081014/p1

690 名前:デフォルトの名無しさん mailto:sage [2012/02/12(日) 23:11:21.16 ]
教材に最適です。頂戴します。



691 名前:デフォルトの名無しさん [2012/02/13(月) 03:35:57.87 ]
>>687
完全版がくるとは思わなかったw

692 名前:デフォルトの名無しさん mailto:sage [2012/02/13(月) 06:42:43.63 ]
日本と中国の二者択一を迫る米国
www.chosunonline.com/site/data/html_dir/2012/02/11/2012021100371.html

米国で大統領補佐官(国家安全保障担当)を務めたブレジンスキー氏は「韓国が米国との同盟を
強く望んだとしても、米国が韓半島から手を引く時代は少しずつ近づいている」と指摘する。

韓国には「中国による東アジアの覇権を受け入れ、中国とさらに接近する」道と、(反日行為をやめて)
「歴史的な反感にも関わらず、日本との関係をさらに強化する」という二つの道が選択肢として提示されていると明言した。

「中国に頼る」ということは、中国の付属品のように屈従して延命を図り、その下で生き延びるという意味だ。
「日本と手を結ぶ」ことについては、説明する必要もないだろう。

与党も野党も、あるいは右も左も関係なく、韓国のあらゆる政治勢力は、
この状況で5000万の国民をどちらの方向に導くか、決断を下さなければならない。


米国 「もう韓国は捨てるから、中国の植民地になるか、親日になり日本の植民地になるか選べよ」 ★3
engawa.2ch.net/test/read.cgi/poverty/1329035247/

693 名前:デフォルトの名無しさん mailto:sage [2012/02/13(月) 15:25:22.15 ]
>>691
バグ直しただけです

694 名前:デフォルトの名無しさん mailto:sage [2012/02/13(月) 20:31:33.76 ]
荒らすだけが目的の奴が最近ちょろちょろとじゃまくさいな。

695 名前:デフォルトの名無しさん mailto:sage [2012/02/13(月) 20:57:46.64 ]
お前のことか。
そうやって煽り文句書いて自演で荒らすんだろ。
気持ちわりぃ。

696 名前:デフォルトの名無しさん [2012/02/13(月) 21:10:05.86 ]
うるさいゴミ

697 名前:デフォルトの名無しさん mailto:sage [2012/02/13(月) 21:19:17.63 ]
>>694は荒らし?

698 名前:デフォルトの名無しさん mailto:sage [2012/02/13(月) 21:24:01.83 ]
荒らしというより自分にとって都合の悪い話は全部荒らしに見える精神障害の一種

最近は自己中な精神構造から発症するうつ病患者がいるらしいし、その類

699 名前:694 mailto:sage [2012/02/13(月) 21:56:32.08 ]
ちなみに俺が荒らしと思うのは
>>695
>>696
>>698
あたり。いずれもたぶん荒らし兼自己紹介だな。
前みたいにコテハン使ってくれればいいのになあ。そうすればあぼーんしやすいのに。

700 名前:デフォルトの名無しさん mailto:sage [2012/02/13(月) 21:58:38.13 ]
自己紹介乙
コテ付けてくれ



701 名前:デフォルトの名無しさん [2012/02/13(月) 22:03:55.44 ]
しばらく書き込みもなくて落ち着いてるところに荒らしがどうのと燃料投下してる辺りどう見ても荒らしです。
お疲れ様でした。

702 名前:デフォルトの名無しさん mailto:sage [2012/02/13(月) 22:04:38.96 ]
www17.ocn.ne.jp/~endo/12_1.html
>うつ状態を引き起こす要因
>自己愛性パーソナリティ
>過剰な賞賛を求める特権意識が強い、相手を自分の目的にしか利用しない。
>相手に対する共感の欠如、他者への激しい嫉妬、尊大で傲慢な態度がある。

自分が気に入らないとすぐ荒らし扱いするのは
>>694はこの辺りだろうな、自覚もないみたいだしかわいそうに

703 名前:デフォルトの名無しさん mailto:sage [2012/02/13(月) 22:06:12.90 ]
>>702
うるさい池沼

704 名前:デフォルトの名無しさん mailto:sage [2012/02/13(月) 22:08:30.01 ]
>>699 ← 昨日の夜中から荒らすネタがなくて自演で無理矢理荒らし兼自己紹介を始めた人です

705 名前:デフォルトの名無しさん mailto:sage [2012/02/13(月) 22:11:27.18 ]
なんだ、自己紹介だらけで礼儀正しいいいスレじゃないか。

706 名前:デフォルトの名無しさん mailto:sage [2012/02/13(月) 22:28:37.19 ]
>>699
>>694が抜けてるぞ。

707 名前:デフォルトの名無しさん mailto:sage [2012/02/13(月) 22:36:19.94 ]
>>706
死ね死ね死ね死ね死ね死ね死ね死ね

708 名前:694(本物) mailto:sage [2012/02/13(月) 22:39:59.47 ]
>>699は俺じゃない。
人のレス番騙って荒らすとかタチが悪いな。

709 名前:694 mailto:sage [2012/02/13(月) 23:05:20.54 ]
>>708
偽物はお前だろ、死ねゴミクズ。
人に迷惑かけないように行方不明で死ぬんだぞ。
お前は生きてるだけで迷惑なんだから死ぬときくらい迷惑かけるなよカス。

710 名前:デフォルトの名無しさん mailto:sage [2012/02/13(月) 23:16:53.97 ]
質問も何もきてないのにいきなり荒れててワラタw



711 名前:デフォルトの名無しさん [2012/02/13(月) 23:49:13.47 ]
>>710
 >>694

712 名前:694 mailto:sage [2012/02/14(火) 00:09:53.24 ]
すげえ。いつのまにか俺が3人もいる。

713 名前:694 mailto:sage [2012/02/14(火) 00:10:50.66 ]
11人いる!


714 名前:デフォルトの名無しさん mailto:sage [2012/02/14(火) 00:20:24.34 ]
>>694は何でわざわざこのスレ選んで荒らし始めたんだ?

715 名前:デフォルトの名無しさん mailto:sage [2012/02/14(火) 00:33:25.12 ]
Firefox のクラッシュは、Firefox 本体の不具合に限らず、外部のプログラムによる干渉、想定外のデータの読み込みや操作によって引き起こされます。
特に、Firefox と連携するプログラム (アドオンなど) や想定外の動作をするスクリプト、悪意のあるソフトウェア (マルウェア) が原因の多くを占めます。
Firefox 本体の不具合がクラッシュの原因となっている場合、たいていは最新版で修正されています。
まず、Firefox を最新版へ更新してください (初期設定では自動的に更新されます)。
Firefox を更新しても引き続き Firefox がクラッシュするようであれば、Firefox 本体の不具合ではない可能性があります。
このトラブルシューティングでは、そうした際に考えられるいくつかの原因と解決策を紹介します。

716 名前:デフォルトの名無しさん mailto:sage [2012/02/14(火) 00:47:02.79 ]
>Firefox 本体の不具合がクラッシュの原因となっている場合、たいていは最新版で修正されています。
たいていとかいう単語が出てくる程頻繁にクラッシュするゴミブラウザ誰が使うんだよ
使ってるのは一部の情弱だけなんだからいちいちコピペするな

717 名前:デフォルトの名無しさん mailto:sage [2012/02/14(火) 00:47:40.28 ]
>>714
さぁ、仕事でもクビになったんじゃね?w

718 名前:デフォルトの名無しさん mailto:sage [2012/02/14(火) 14:54:12.00 ]
以下の二つのコマンドで出力結果が異なるのはバグでしょうか。

perl -MPOSIX=strftime -le 'print strftime ("%s", localtime)'
perl -MPOSIX=strftime -le 'print strftime ("%s", gmtime)'


719 名前:デフォルトの名無しさん mailto:sage [2012/02/14(火) 15:07:56.91 ]
localtimeやgmtimeが返す値にはタイムゾーンの情報が含まれていなくて、
strftimeの%sはTZ環境変数に基づいて年月日時分秒を解釈するからそうなる。

720 名前:デフォルトの名無しさん mailto:sage [2012/02/14(火) 15:19:12.68 ]
日本からの資金援助
・6000億ドル(併合から終戦まで)1965年
・8億ドル+α(経済協力金)  1965年
・40億ドル (特別経済協力金) 1983年
・100億ドル (通貨危機救済金) 1997年
・200億ドル (ウォン高救済基金)2006年
・300億ドル (ウォン安対策IMF、韓国に2.8兆円融通)2008年
その他、2002日韓ワールドカップのスタジアム建設費の融資した300億円は未返済


・併合に反対だった伊藤博文を親日派の安重根が暗殺した結果、併合が決定的となった
・朝鮮内部で親清派・親露派・親日派などが争い、親日派が勝った結果、望んで併合された
・従軍慰安婦は強制ではなく職業売春婦であり、下士官以上の収入を得ていた
・強制連行はほんの数十人で、大多数は仕事を与えてもらったか、自ら求めてやってきた出稼ぎ労働者か密航者
・創氏改名は日本で働く際に差別されないため、日本人の名前を自ら望んだ(※改名しない人もいた)
・創氏改名によって下層階級者がこぞって名門姓である「金」を名乗ったため、「金」が多数派となった
・併合後、日本によって教育やインフラへの投資が行われ、生活水準が著しく向上した
・韓国の発展は日本からの援助や併合時の置き土産(約60兆円)がなければ有り得なかった
・戦後、李承晩という独裁者が自衛隊発足前の日本から竹島を奪い取った
・日本から預かった北朝鮮への賠償金や援助金は韓国が使ってしまった
・上記の日本からの援助及び、北朝鮮への援助を使ったことを国民に正確に説明していない
・出稼ぎ労働者や密航者である同胞の在日韓国人・朝鮮人を引き取りもせず、日本に押し付けている




721 名前:デフォルトの名無しさん [2012/02/14(火) 15:53:35.47 ]
>>718
何でもかんでも開発環境のバグにするなよゴミ
バグってるのはお前の頭だろ

722 名前:デフォルトの名無しさん mailto:sage [2012/02/14(火) 17:08:01.93 ]
>>718
何でPerlの仕様も読まずに質問してんだ池沼。

723 名前:デフォルトの名無しさん [2012/02/14(火) 17:26:16.62 ]
Firefoxってバグ直さずバージョンだけ上がっていく伝説の糞ブラウザか

724 名前:デフォルトの名無しさん [2012/02/14(火) 18:19:09.88 ]
>>723
糞ブラウザって言うとブラウザみたいにきこえるぞ
あれはただの産廃だよ

725 名前:デフォルトの名無しさん mailto:sage [2012/02/14(火) 19:01:14.74 ]
どうしてブラウザの話になってんだよ糞は>>723-724だろ

726 名前:デフォルトの名無しさん [2012/02/14(火) 20:23:56.20 ]
>>725
よう、糞
元気か?
頭の調子はどうだ?

727 名前:デフォルトの名無しさん mailto:sage [2012/02/14(火) 20:50:22.08 ]
朝鮮人がわいとるのー

728 名前:デフォルトの名無しさん mailto:sage [2012/02/14(火) 21:25:50.30 ]
ちんちんかいかい

729 名前:デフォルトの名無しさん mailto:sage [2012/02/14(火) 21:39:01.98 ]
>>722
POSIX仕様はPerl仕様の範疇に無い。
更に%sは拡張仕様。

730 名前:デフォルトの名無しさん mailto:sage [2012/02/14(火) 23:03:48.99 ]
>>726

チンカス



731 名前:デフォルトの名無しさん mailto:sage [2012/02/14(火) 23:12:04.09 ]
>>730

マンカス

732 名前:デフォルトの名無しさん mailto:sage [2012/02/15(水) 00:18:06.24 ]
連想配列の中の値が全部空文字列だったときにループを飛ばすような処理を考えて

next if !grep { $_ ne q{} } values %hash;

というような書き方をしたんだがどうも直感的じゃなくてパッとしない。
どう書きなおせばいい? サブルーチンに出して適切な名前つけるべき?

733 名前:デフォルトの名無しさん mailto:sage [2012/02/15(水) 00:29:19.01 ]
>>732

next if '' eq join '', values %hash;

パッと思いつくのはこれくらいかなぁ
特に見やすくなったとは思えんが・・・

サブルーチン化するかコメントでも書いておくのが正解じゃね

734 名前:デフォルトの名無しさん mailto:sage [2012/02/15(水) 00:54:46.31 ]
>>733
ありがとう。joinは盲点だった。
とりあえずサブルーチンにしといて
%hashをメンバ変数にしたクラスのメソッドに移すよう
TODOリストに加えとくことにするよ。

こーゆーのって結局おざなりになっちゃうわけだけど……やれやれ。

735 名前:デフォルトの名無しさん mailto:sage [2012/02/15(水) 01:04:45.23 ]
>>719
>localtimeやgmtimeが返す値にはタイムゾーンの情報が含まれていなくて、
含まれていないにも関わらず、strftime の結果が異なるのは、strftime は
引数の値を見ているのではなくて、引数部分に記述されているのが何かを
見ているってことなの?本当なの?

736 名前:デフォルトの名無しさん mailto:sage [2012/02/15(水) 01:55:44.13 ]
>strftimeの%sはTZ環境変数に基づいて年月日時分秒を解釈するからそうなる。

737 名前:デフォルトの名無しさん [2012/02/15(水) 01:58:05.42 ]
マジカルインクリメントってひらがな対応してたのかよwwwwwwwwwww
はやく教えろよwwwwwwwwwwwwwwwwwwww

738 名前:デフォルトの名無しさん mailto:sage [2012/02/15(水) 02:15:48.95 ]
>>732
読みやすさとは関係ないけれど、hash が大きい場合は、grep だと最初の一個が
空でなかった場合でも全部なめてしまうので、効率よくないよ。



739 名前:デフォルトの名無しさん mailto:sage [2012/02/15(水) 08:26:13.78 ]
>>722
つか、localtime/gmtimeの概念はPerl誕生よりず〜っと前からあるよ

740 名前:デフォルトの名無しさん mailto:sage [2012/02/15(水) 08:38:49.79 ]
>>738
そんなん誰でも知ってるだろ低能




741 名前:デフォルトの名無しさん mailto:sage [2012/02/15(水) 09:38:07.45 ]
>>732
use List::MoreUtils qw(all);

next if all { $_ eq q{} } values %hash;

742 名前:デフォルトの名無しさん [2012/02/15(水) 12:59:47.65 ]
もういいです

743 名前:デフォルトの名無しさん mailto:sage [2012/02/15(水) 22:04:02.05 ]
strftimeは引数を無視して、自分でtime関数を呼び出してTZ環境変数に
基づいて年月日時分秒を解釈するんですね。とても勉強になりました。

744 名前:デフォルトの名無しさん [2012/02/15(水) 22:39:16.33 ]
結局ファイルの行数を得るにはどの方法が一番いいんだよハゲ

745 名前:デフォルトの名無しさん mailto:sage [2012/02/15(水) 22:52:41.19 ]
wcでも呼んどけタコ

746 名前:デフォルトの名無しさん mailto:sage [2012/02/16(木) 00:47:39.85 ]
「一番いい方法」なんてのはない。
好きな方法でやればいい。
それがTMTOWTDI。


747 名前:デフォルトの名無しさん mailto:sage [2012/02/16(木) 01:49:15.98 ]
ただ公式faqでの回答はゴミだから参考にしてはいけない

748 名前:デフォルトの名無しさん mailto:sage [2012/02/16(木) 01:58:19.69 ]
>>743
strftimeの%sがタイムゾーン分の秒数を引いてるだけじゃない?
私の手元の環境の実装だと、そんな感じだった。

749 名前:デフォルトの名無しさん mailto:sage [2012/02/16(木) 04:28:26.00 ]
うん。
>>743 の人は何かひどく誤解してるようなんだけど、
何をどう誤解してるのかがよくわからない。


750 名前:デフォルトの名無しさん mailto:sage [2012/02/16(木) 07:59:20.52 ]
 韓国人アイドルグループ「GREAT」が歌手活動に必要な在留資格を得ずに活動していた事件で、警視庁組織犯罪対策1課と新宿署は
15日までに、入管難民法違反(資格外活動)容疑で、20〜27歳の男性メンバー5人を書類送検した。事情を知りながらグループを来日
させ活動させた同法違反のほう助容疑で、ライブハウスを実質的に経営する韓国籍の男性社長(48)=東京都新宿区=も書類送検した。

 同課によると、メンバー5人は容疑を認め、社長も「デビューしたてのグループが日本で売れれば、見返りが入ると思った」と認めている。 

.news.livedoor.com/article/detail/6281304/



751 名前:デフォルトの名無しさん [2012/02/16(木) 21:11:43.94 ]
牛丼クレープ

752 名前:デフォルトの名無しさん [2012/02/17(金) 12:38:31.97 ]
$s =~ s/hoge(\d+)/ /g;
みたいに"hoge数字"グローバルに置換して、マッチした数字部分を全部取得する方法ってある?

753 名前:デフォルトの名無しさん mailto:sage [2012/02/17(金) 12:41:20.06 ]
grepで二度手間を試みる

754 名前:デフォルトの名無しさん mailto:sage [2012/02/17(金) 13:05:32.96 ]
my @match;
$s =~ s/hoge(\d+)/push @match, $1; " "/ge;

755 名前:デフォルトの名無しさん mailto:sage [2012/02/17(金) 22:34:02.61 ]
得意満面の s///ge 内の push。

756 名前:デフォルトの名無しさん mailto:sage [2012/02/18(土) 01:50:59.38 ]
何か変?

757 名前:デフォルトの名無しさん mailto:sage [2012/02/18(土) 03:50:34.97 ]
>>754
ヘー、勉強になりまった。

758 名前:デフォルトの名無しさん mailto:sage [2012/02/18(土) 03:55:26.07 ]
んにゃ、きわめて真っ当。

759 名前:デフォルトの名無しさん mailto:sage [2012/02/18(土) 03:55:59.40 ]
>>754
ていうか
push @list, $1 while s/hoge(\d+)//;
って書きこみしようとしていた。

760 名前:デフォルトの名無しさん mailto:sage [2012/02/18(土) 13:56:55.08 ]
ホントPerlは勉強には事欠かない言語ってことを再認識した



761 名前:デフォルトの名無しさん [2012/02/18(土) 17:50:37.78 ]
test_dataディレクトリにいろんなログデータが入っていて
管理モードを作って、このディレクトリ名をrenameで変更したいのですが
test_dataディレクトリの中にあるファイルに誰かが書き込んでいるとき
ディレクトリ名を変更するとデータが消えたりするんですが
それを回避できるいい方法はないんでしょうか?

ディレクトリ全体をロックすると重くなるのでそれ以外の方法でです

762 名前:デフォルトの名無しさん mailto:sage [2012/02/18(土) 18:01:46.29 ]
>>761
$ chmod 700 test_data
$ mv test_data [好きな名前]
$ chmod 777 [変更した名前]

763 名前:デフォルトの名無しさん [2012/02/18(土) 19:52:25.24 ]
>>762
その方法でディレクトリ名を変更すると
変更前の現在書き込み中のファイルは途中で書き込みが中断されますか?

764 名前:デフォルトの名無しさん mailto:sage [2012/02/18(土) 20:11:35.27 ]
OSは秘密ですか。そうですか。

765 名前:デフォルトの名無しさん mailto:sage [2012/02/18(土) 20:12:18.88 ]
>>763
試してみればわかるんじゃないかな?
これはOS依存になると思う、Ubuntuで試した所・・・
書き込み用にファイルを開いているタイミングでパーミッション変えても書き込みは続行する。
次の書き込みからファイルオープンができなくなる。

766 名前:デフォルトの名無しさん [2012/02/18(土) 20:15:06.30 ]
windows7でactiveperlなのでUNIXコマンドはできないです

767 名前:デフォルトの名無しさん mailto:sage [2012/02/18(土) 20:17:59.39 ]
>>766
もう、スクリプトを止めたら?
ディレクトリの名前を書き換えて再開すればいいんじゃね?

768 名前:デフォルトの名無しさん mailto:sage [2012/02/18(土) 20:21:49.89 ]
windowsだとオープンしているファイルがあるとディレクトリ名の変更が出来ないから、
test_dataディレクトリのファイルをいじるときはダミーのファイルをオープンする。
管理モードではディレクトリのリネームが成功するまでリトライする。

769 名前:デフォルトの名無しさん mailto:sage [2012/02/18(土) 21:09:46.43 ]
つtechnet.microsoft.com/ja-jp/library/cc771672(v=ws.10).aspx

770 名前:デフォルトの名無しさん mailto:sage [2012/02/19(日) 01:03:13.41 ]
mkdirで排他用のディレクトリを作る
このディレクトリがある間は、それ以降test_dataの中のファイルにアクセスできないようにする
この排他用ディレクトリができる前にtest_dataディレクトリの中のファイルに書き込んでいるプロセスがあるかもしれないので
sleepで10秒くらい待ってからrenameでtest_dataディレクトリ名を変更すれば
その書き込んでいるプロセスも終了しているだろうから安全にrenameできるだろう



771 名前:デフォルトの名無しさん mailto:sage [2012/02/19(日) 01:24:07.44 ]
もうperlに閉じた話じゃなくなってるな。OSがらみ。

772 名前:デフォルトの名無しさん [2012/02/19(日) 02:39:57.73 ]
スキルがなくて2chで質問するような低能は込み入った作業をしなさんなってこった

773 名前:デフォルトの名無しさん mailto:sage [2012/02/19(日) 17:37:49.27 ]
perlでは「"0"」が偽と判断されてしまうようなんですけど、
「"0"」を真と見なすには、「length("0")」とするしかないでしょうか。
みなさんどうされてますか。

774 名前:デフォルトの名無しさん mailto:sage [2012/02/19(日) 17:44:59.83 ]
そのために defined があるんでしょつりですね

775 名前:デフォルトの名無しさん [2012/02/19(日) 17:45:34.24 ]
お前の頭の中のアルゴリズムに問題があるだけだろ

if ( $a ne "" )

776 名前:デフォルトの名無しさん mailto:sage [2012/02/19(日) 17:47:59.64 ]
! を使う

777 名前:デフォルトの名無しさん mailto:sage [2012/02/19(日) 17:49:19.55 ]
そのアイディアにはびっくりしました

778 名前:デフォルトの名無しさん mailto:sage [2012/02/19(日) 17:51:58.96 ]
びみょうにバグってますね

正しくは
if ( $a eq "0" )

779 名前:デフォルトの名無しさん [2012/02/19(日) 18:05:00.58 ]
windowsならば>>770がいいと思いました

780 名前:デフォルトの名無しさん [2012/02/19(日) 18:24:34.77 ]
うるさいゴミ



781 名前:デフォルトの名無しさん mailto:sage [2012/02/19(日) 18:54:05.89 ]
なに?作文?

782 名前:デフォルトの名無しさん [2012/02/19(日) 19:14:41.97 ]
>>773
文字を数値として比較しようとするからだろ基地害
お前まじでプログラミング向いてないから失せろ異常者

783 名前:デフォルトの名無しさん mailto:sage [2012/02/19(日) 20:41:06.16 ]
perlでは変数に値を代入後、格納したものが文字列なのか数値なのか
の情報が失われてしまうようなんですけど、どちらが代入されたのか
調べる方法があるのでしょうか。
みなさんどうされてますか。

784 名前:デフォルトの名無しさん mailto:sage [2012/02/19(日) 20:52:32.26 ]
>>782
数値じゃなくて真偽値だろ

785 名前:デフォルトの名無しさん mailto:sage [2012/02/19(日) 21:14:28.53 ]
>>783


C言語もやったことのないようなゴミがこういうレスするんだろうな。
自分が格納した値の型も忘れるような痴呆は回線切れよ。

786 名前:デフォルトの名無しさん mailto:sage [2012/02/19(日) 21:22:19.61 ]
>>783
おいアホ釣り針がお前のアレなみに小さいぞ


787 名前:デフォルトの名無しさん mailto:sage [2012/02/19(日) 21:22:47.45 ]
>>783
ないよ。Perlはじゃんじゃか動的に型付けするから。
文字列か数値かで処理を分けたいなら同じ変数に入れるべきじゃない。

具体的に困ってるコード見てみないとアドバイスできないけど。

788 名前:デフォルトの名無しさん mailto:sage [2012/02/19(日) 21:46:39.32 ]
(($_ ^ $_) eq '0') ? print "$_: numeric\n" : print "$_: string\n" for (1, '1');

1: numeric
1: string

789 名前:デフォルトの名無しさん mailto:sage [2012/02/19(日) 23:10:36.14 ]
>>783
評価の仕方で、文字だったり数字だったりでPerlさんが自動で判断してくれる。
文字とかも数字として評価する事もできるしな。

790 名前:デフォルトの名無しさん [2012/02/19(日) 23:22:25.60 ]
>文字とかも数字として評価する事もできる

馬鹿の書いたソースでよく見かけるね



791 名前:デフォルトの名無しさん mailto:sage [2012/02/20(月) 00:47:49.78 ]
utf8フラグがONになっているものが文字列。

792 名前:デフォルトの名無しさん [2012/02/20(月) 00:57:52.14 ]
数値比較だと空データは0として見なされる

793 名前:デフォルトの名無しさん mailto:sage [2012/02/20(月) 01:16:22.87 ]
($_ ^ $_) =~ /^\x00*$/ でもいいか

794 名前:デフォルトの名無しさん mailto:sage [2012/02/20(月) 02:55:05.85 ]
>>789
> 評価の仕方で、文字だったり数字だったりでPerlさんが自動で判断してくれる。
> 文字とかも数字として評価する事もできるしな。
このへんがperlの便利でもあり厄介でもあるところ。
まあ慣れれば便利なことの方が多い。

795 名前:デフォルトの名無しさん mailto:sage [2012/02/20(月) 14:11:58.96 ]
>>788
これはどういう仕組みなんですか?うまく動いたのですが、つまり同じ数値をxorした結果
'0' = ビット列00110000になっているという事ですよね。
調べたらperlは文字列にビット演算することができてその場合はasciiコードとして演算されるとの事でしたが、
文字列でも数字でも同じ物をxorすると0になり、結果は同じではないかと思いました。

796 名前:デフォルトの名無しさん mailto:sage [2012/02/20(月) 15:12:44.00 ]
>>795
同じ数値同士のXORは数値の0
同じ文字列同士のXORは文字コード0 つまり "\x00"

>>788 の ($_ ^ $_) eq '0' は
$_ が数値なら 0 eq '0' で、文字列値なら "\x00" eq '0'
あとはわかると思うけど、eq は文字列比較なので前者の場合は左側の数値 0 は文字列 '0' に変換されてから比較されて、結果真になる。

797 名前:デフォルトの名無しさん mailto:sage [2012/02/20(月) 15:20:05.81 ]
>>798
はぁ〜〜なるほど、分かりました。
文字列同士のXORで得られた数値は文字コード(という表現が適切かどうかは分かりませんが)として再評価されるんですね。
分かりやすい解説レスありがとうございました。

798 名前:デフォルトの名無しさん mailto:sage [2012/02/20(月) 15:22:32.68 ]
× /2^798
○ /2^796
失礼しました

799 名前:788 mailto:sage [2012/02/20(月) 19:40:36.19 ]
まぁ、パズルに近いけどね。
破壊的な変数の利用を避けるべきなら、
破壊されやすい変数の利用も避けるべきで。

800 名前:age mailto:sss [2012/02/20(月) 21:14:30.39 ]
webクローラのgunghoモジュール
がどうしてもインストールできない
POEエンジンインストールのところで(POE::component::*)エラーになる
解決策教えて
それか別のperl高性能クローラ教えて



801 名前:デフォルトの名無しさん mailto:sage [2012/02/20(月) 21:22:03.45 ]
癌呆の略字を知らないモグリかよ


802 名前:デフォルトの名無しさん [2012/02/20(月) 21:22:16.89 ]
馬鹿には無理

803 名前:age mailto:sage [2012/02/20(月) 21:39:20.56 ]
そんな子といわずに教えて


804 名前:デフォルトの名無しさん mailto:sage [2012/02/21(火) 00:34:24.86 ]
恥かしくてもう出てこられない785-787。

805 名前:デフォルトの名無しさん mailto:sage [2012/02/21(火) 01:26:31.73 ]
標準入力を最後まで読み取る必要があるんだけど処理はしない。
とりあえず while (<>) {} とか書いてるが、もっとスマートな書き方ないかな?


806 名前:デフォルトの名無しさん mailto:sage [2012/02/21(火) 01:35:09.55 ]
処理しないんなら読みとる必要も無いだろ


807 名前:デフォルトの名無しさん mailto:sage [2012/02/21(火) 01:52:13.17 ]
なんらかのプログラムの出力を吐ききらせたいとかそういうのじゃないのかね

808 名前:デフォルトの名無しさん mailto:sage [2012/02/21(火) 01:53:58.95 ]
^Dだか^Zが来るまで読み捨てたいのかね。
@_ = <>;
とか。スマートとは思わんが。

809 名前:デフォルトの名無しさん [2012/02/21(火) 02:26:19.84 ]
低能は黙ってろ

810 名前:デフォルトの名無しさん mailto:sage [2012/02/21(火) 02:37:16.10 ]
プロさんちーっす
0 while<>;
はどうかと思った



811 名前:デフォルトの名無しさん mailto:sage [2012/02/21(火) 03:20:20.57 ]
>>806
procmailのフィノレター書いてるですが、最後まで読んでやらんと
パイプ新だがなって怒られるんです(´;ω;`)

>>808
それメモリ喰らいません?
undef = <>;的な書き方ができたらウフーだなとかオモテますた。

>>809
ごめんなさいぃぃぃ

>>810
かっこぇぇ惚

812 名前:デフォルトの名無しさん mailto:sage [2012/02/21(火) 03:20:52.14 ]
>>807
愛してます☆

813 名前:デフォルトの名無しさん mailto:sage [2012/02/21(火) 04:18:56.02 ]
(undef) = <STDIN>;

() = <STDIN>;

814 名前:デフォルトの名無しさん mailto:sage [2012/02/21(火) 04:25:31.57 ]
>>813
ウフー! ウフー! ウフー! ウフー! ウフー!

自分の中ではこれFAなりでマジ惚れ危険!
さんきゅーさんきゅーありがとベリーマッチ

関係ないけど皆さんやっぱ<>より<STDIN>推奨?

815 名前:デフォルトの名無しさん mailto:sage [2012/02/21(火) 05:18:06.37 ]
この場合は読み込み元が標準入力じゃないと成立しないんだから、
@ARGV の有無で読み込み元が変わる <> よりも <STDIN> のほうが間違いないでしょ。

816 名前:デフォルトの名無しさん mailto:sage [2012/02/21(火) 05:33:53.62 ]
確かに相手が自前じゃないわけだし、なに食わされるかわかんないですもんね…
本当に遅くまで、もとい早朝までありがとうございました。真剣感謝です。

817 名前:デフォルトの名無しさん mailto:sage [2012/02/21(火) 05:36:15.49 ]
そんなトリッキーな書き方が許されるのは中学生までだよねー

818 名前:デフォルトの名無しさん mailto:sage [2012/02/21(火) 10:28:33.57 ]
perlのどこらへんがトリッキーじゃないんだ
奇をてらいたくなきゃあ別のクソでもいじくりまわしてろ

819 名前:デフォルトの名無しさん mailto:sage [2012/02/21(火) 12:15:17.39 ]
>>818
全部トリッキーに見えるのか。
どうかしてるよ、お前。

820 名前:デフォルトの名無しさん mailto:sage [2012/02/21(火) 17:56:20.52 ]
>>818
Perlごときで挫折したプログラミング不適格者の、典型的な言い訳だな。
体育会系会社に入って営業でもやってろw



821 名前:デフォルトの名無しさん mailto:sage [2012/02/21(火) 19:52:44.30 ]
" () = " は一応、リストコンテキストで呼び出すための慣用句ってことになってる。

perldoc.jp/docs/perl/5.10.0/perldata.pod#List32value32constructors

822 名前:デフォルトの名無しさん mailto:sage [2012/02/21(火) 23:10:03.46 ]
(<>);

823 名前:デフォルトの名無しさん mailto:sage [2012/02/21(火) 23:21:22.49 ]
(i)

824 名前:デフォルトの名無しさん mailto:sage [2012/02/22(水) 00:55:04.05 ]
トリッキーではないわけね

825 名前:デフォルトの名無しさん mailto:sage [2012/02/22(水) 00:57:47.51 ]
>>824
アホか?
フトンの中でクソしてさっさと寝ろよ


826 名前:デフォルトの名無しさん mailto:sage [2012/02/22(水) 01:15:09.20 ]
フトンの中でクソなんて発想が許されるのは三歳(さんちゃい)までだよねー

827 名前:デフォルトの名無しさん mailto:sage [2012/02/22(水) 09:38:07.34 ]
×さんちゃい
○ちゃんちゃい

828 名前:デフォルトの名無しさん mailto:sage [2012/02/22(水) 23:44:52.77 ]
('<>')

829 名前:デフォルトの名無しさん mailto:sage [2012/02/23(木) 01:24:50.25 ]
while ( my $hoge = shift @argv )やwhile( my $it = $it->next) ってそのうちundefになって終了するはずなんですが、
while(defined( my $hoge = shift @argv))のようにdefinedを使ってるコードが多いように思います。なぜなんでしょうか。


830 名前:デフォルトの名無しさん mailto:sage [2012/02/23(木) 01:40:11.33 ]
>>829
@argvの中に数字の0とか空文字が入る場合、前者だとそこで止まっちゃう。
あとイテレータに最後のundefがあるとは限らないよ。



831 名前:デフォルトの名無しさん mailto:sage [2012/02/23(木) 02:12:06.81 ]
>>828
正面向きのヒヨコみたい

832 名前:デフォルトの名無しさん mailto:sage [2012/02/24(金) 01:19:58.30 ]
>>830
ほんとですね、ありがとうございます

833 名前:デフォルトの名無しさん [2012/02/24(金) 13:13:11.47 ]
うるさいゴミ

834 名前:デフォルトの名無しさん mailto:sage [2012/02/24(金) 14:08:16.64 ]
>>833
なるほど、自分がついて行けない話の時はそうなるのか
産廃並みの脳味噌だなw

835 名前:デフォルトの名無しさん mailto:sage [2012/02/24(金) 21:56:49.58 ]
perl -E '@a = <STDIN>; eval "@a"'
これをもっと短くすることをお願いできないでしょうか?

836 名前:デフォルトの名無しさん mailto:sage [2012/02/24(金) 22:34:19.63 ]
>>835
何がしたいのそれ
echo 'print "foo";' | perl

837 名前:デフォルトの名無しさん mailto:sage [2012/02/24(金) 23:17:25.64 ]
選択中のテキストに対してシェルコマンドを実行する事が出来るアプリ(Meadow)を使って
perl -pel "s/hoge/ほげ/"
というような感じのことをしてみたのですが
perlスクリプト書いて選択して実行してみたいなと思ったところです。perl だけでは動きませんでした。

今はこうやってます。(少し短くなった)
perl -e "$/=undeff; eval <>"

838 名前:デフォルトの名無しさん mailto:sage [2012/02/24(金) 23:56:04.53 ]
パッパッパパッパぁ〜Perlライス

839 名前:デフォルトの名無しさん mailto:sage [2012/02/25(土) 00:14:16.96 ]
>>837
俺はvimしか使わんからEmacsの流儀は知らんけど、なんかやり方ありそうよ。
maruta.be/intfloat_staff/46

vimなら行選択して":!perl"でもしてやればカレントバッファに結果が出る。

840 名前:デフォルトの名無しさん mailto:sage [2012/02/25(土) 00:23:42.23 ]
>>839
Linux上ではperlだけで動くので多分WindowsとMeadowのせいなんだと思います。
わざわざ調べてくださってありがとうございます!



841 名前:デフォルトの名無しさん [2012/02/25(土) 19:21:23.07 ]
文字列を8もじずつ分割して配列にしたいんだけど
どうしたらかっこういいですか?

842 名前:デフォルトの名無しさん mailto:sage [2012/02/25(土) 19:36:19.69 ]
そのかっこいい方法は、
最速ですか?

843 名前:デフォルトの名無しさん [2012/02/25(土) 19:56:46.61 ]
>>841ゴミは書き込みするなって

844 名前:デフォルトの名無しさん mailto:sage [2012/02/25(土) 20:05:36.52 ]
>>842
格好いい=最速、最速=格好いい
昔から決まってんだろ

845 名前:デフォルトの名無しさん mailto:sage [2012/02/25(土) 20:08:55.00 ]
最速の方法は、
文字へのポインタを8づつ増加させながら
配列に加えていく方法だろうね。

846 名前:デフォルトの名無しさん mailto:sage [2012/02/25(土) 20:19:58.87 ]
my @div = $str =~ /.{1,8}/g ;

これ以上短くできンの?


847 名前:デフォルトの名無しさん mailto:sage [2012/02/25(土) 20:54:05.67 ]
できたよ。
関数作ればコードも短く
意味もわかりやすくなる。


my @div = splitn($str,8);

848 名前:デフォルトの名無しさん mailto:sage [2012/02/25(土) 21:25:21.82 ]
>>847
それってホントに動作の意味が分かりやすくなんの?
関数のホントの意味知らないと、動作が絶対に分からないような作りになってね?
分かりやすいってのはウソで、実はそれ、説明性が低いだろ。


849 名前:デフォルトの名無しさん mailto:sage [2012/02/25(土) 21:36:22.83 ]
my @div = unpack('(A8)*', $str);

850 名前:デフォルトの名無しさん mailto:sage [2012/02/26(日) 05:45:04.09 ]
>>849
                 ,r=''""゙゙゙li,
      _,、r=====、、,,_ ,r!'   ...::;il!
     ,r!'゙゙4       `'ヾ;、, ..::::;r!'゙
    ,i{゙‐'_,,_         :l}..::;r!゙
.  ,r!'゙4 4-ー‐‐==、;;;:....   :;l!:;r゙
 ,rジ          `~''=;;:;il!::'li
. ill゙  ....         .:;ll:::: ゙li
..il'   ' ' '‐‐===、;;;;;;;:.... .;;il!::  ,il!
..ll          `"゙''l{::: ,,;r'゙
..'l!       . . . . . . ::l}::;rll(,
 'i,  ' ' -=====‐ー《:::il::゙ヾ;、
  ゙i、            ::li:il::  ゙'\
  ゙li、      ..........,,ノ;i!:....    `' 、  ∧__∧
   `'=、:::::;;、:、===''ジ゙'==-、、,,,__ `'(・∀・ )
     `~''''===''"゙4        ~`''ー(   ))
                         u~u  good job



851 名前:デフォルトの名無しさん mailto:sage [2012/02/26(日) 12:34:25.82 ]
perlのマニュアルでわかりやすいのってある?
省略したときに$_とか$@を使うのか
引数の中身を破壊するのかしないのか
戻り値が$_とか$@に入るのか
ってのがいつもわからない

852 名前:デフォルトの名無しさん mailto:sage [2012/02/26(日) 12:57:09.78 ]
以下のsub.plは単体で呼び出すとうまく動くのですが、main.plから呼び出すと
|$ perl sub.pl を実行します
|"\x{0436}" does not map to cp932. "\x{042c}" does not map to cp932. "\x{00b5}" does not map to cp932. ...
となってしまいます。何故化けてしまうのでしょうか?
やりたかったこと(標準出力を一時的に切り替えたい)はselectを使うことで解決したのですが、
以下がうまく行かない理由が分からず、分かる方がいらしたら教えていただきたいです。
両ファイルともutf-8で保存しています。windows環境です。

#### main.pl ####
use strict;
use utf8;
use Encode;
binmode STDIN, ":encoding(cp932)";
binmode STDOUT, ":encoding(cp932)";
binmode STDERR, ":encoding(cp932)";
my $command = "perl sub.pl";
print "> $command を実行します\n";
print decode("cp932", `$command`);

### sub.pl ####
use strict;
use utf8;
binmode STDIN, ":encoding(cp932)";
binmode STDOUT, ":encoding(cp932)";
binmode STDERR, ":encoding(cp932)";
open DEF_STDOUT, ">&STDOUT";
open STDOUT, ">:encoding(cp932)", "./test.txt" || die "ファイルが開けません: $!";
print "testです";
close STDOUT;
open STDOUT, ">&DEF_STDOUT";
binmode STDOUT, ":encoding(cp932)"; # この行を消すと、main.plの実行は上手くいくのですが、単体実行でwide character in print 化けます。
print "生成しました\n";

853 名前:デフォルトの名無しさん mailto:sage [2012/02/26(日) 13:33:21.59 ]
printfで文字列に全角文字が混じった時に、
全角は2文字分の幅として認識させるにはどうすれば

ぐぐると、やたら面倒そうなのとか、根本から変えちゃうようなのしか見つからない

854 名前:デフォルトの名無しさん mailto:sage [2012/02/26(日) 13:55:58.80 ]
>>853
罫線問題もあるので、極めて難しい超難問ですお

855 名前:デフォルトの名無しさん mailto:sage [2012/02/26(日) 14:23:31.52 ]
じゃあ、罫線は無視で

856 名前:デフォルトの名無しさん mailto:sage [2012/02/26(日) 14:26:05.67 ]
罫線問題って呼び方は聞いたことないけど、「曖昧な文字幅」の扱いのことだよね。
Winユーザでもギリシャ文字が場合によって半角だったり全角だったりなんてのは見たことあると思うけど。

857 名前:デフォルトの名無しさん mailto:sage [2012/02/26(日) 14:34:36.92 ]
ハングルは半角か全角か

858 名前:デフォルトの名無しさん mailto:sage [2012/02/26(日) 14:51:51.24 ]
こんなのでよくね?

use utf8;

sub count {
my $str = shift;
my @chars = split(//,$str);
my $kigou = quotemeta("!@#$%^&*()_+|~-=\`[]{};:'\",./<>?");
my $count = 0;
for (@chars) {
$count += /[a-zA-Z0-9]|$kigou/ ? 1 : 2;
}

return $count;
}

print count("1234ほげほげ"); # =>12

859 名前:デフォルトの名無しさん mailto:sage [2012/02/26(日) 15:16:54.51 ]
>>852
俺の環境(Ubuntu)では文字化けしなかった。
cp932の所は環境に合わせるためにutf-8に書き換えたがな。

ってか、ちゃんと文字のencodeとdecodeを理解するべきだろ・・・
魔法のおまじないのように「binmode STDERR, ":encoding(cp932)";」こういうの使わない方がいいと俺は思うけど。

860 名前:デフォルトの名無しさん mailto:sage [2012/02/26(日) 15:19:44.17 ]
decode('cp932', sprintf("%-10s", encode('cp932', $str) ) );

結局、こんなんにしました



861 名前:デフォルトの名無しさん mailto:sage [2012/02/26(日) 15:23:22.06 ]
>>860
なんとひどい・・・
無駄なオーバーヘッドかかりまくり・・・
センスの欠片も感じられない、もっと本読めマジで本読め

862 名前:デフォルトの名無しさん mailto:sage [2012/02/26(日) 15:36:02.70 ]
>>861
我流でやってきたので・・
おすすめの本があれば教えて下さい。

863 名前:デフォルトの名無しさん [2012/02/26(日) 15:45:40.64 ]
>>862
自分で探せゴミクズ
そうやってすぐ他人にきくからゴミみたいなコード書くんだろ
ゴミコードをネットで晒して恥ずかしくないとか頭の中どうなってんだこの基地害

864 名前:デフォルトの名無しさん mailto:sage [2012/02/26(日) 15:51:42.39 ]
お前がどんなにゴミだクズだと罵ったところで、>>862は人として最低限のプライドもないから無駄だよ。

865 名前:デフォルトの名無しさん mailto:sage [2012/02/26(日) 15:51:51.45 ]
バイナリでいいやん

866 名前:デフォルトの名無しさん mailto:sage [2012/02/26(日) 16:04:46.11 ]
>>862
俺が読んでた本は、もう随分古い本だからな・・・
同じ本を薦めても情報が古過ぎる、新しい情報はネットから得てるし
amazonで適当に探して評価読んで良さそうなのを一冊見つければいいんじゃないか?

867 名前:デフォルトの名無しさん mailto:sage [2012/02/26(日) 16:19:33.07 ]
ネットからは得られないぞ
入門の情報はネットで十分だけど、ノウハウ的なものは金を出さないと得られない

868 名前:デフォルトの名無しさん mailto:sage [2012/02/26(日) 16:27:51.02 ]
応急の策としてなら>>860は別にそれほど悪くない。
速度的にもutf8のまま真面目にFULLWIDTH/HALFWIDTHを判定していくよりは速いぐらいかもしれない。

869 名前:デフォルトの名無しさん mailto:sage [2012/02/26(日) 16:56:03.34 ]
漏れが一切無いというのが安心できるな
シフトJISの時と全く同じ動作を得たいなら、シフトJISにするしかない

870 名前:デフォルトの名無しさん mailto:sage [2012/02/26(日) 17:03:42.35 ]
入力も出力もシフトJISなら処理もシフトJISで行ったほうがいいでしょ
utf8に変換する必要性ないでしょ



871 名前:デフォルトの名無しさん mailto:sage [2012/02/26(日) 17:07:44.22 ]
クソ性器表現のため処理はutfだろふざけんなks

872 名前:デフォルトの名無しさん mailto:sage [2012/02/26(日) 17:09:37.67 ]
もう頭痛くなってきたw
いい感じにひどいですね

873 名前:デフォルトの名無しさん [2012/02/26(日) 17:31:21.20 ]
うるさいゴミ

874 名前:デフォルトの名無しさん mailto:sage [2012/02/26(日) 17:37:25.00 ]
>>852
### sub.pl ####
use strict;
use utf8;
binmode STDIN, ":encoding(cp932)";
# binmode STDOUT, ":encoding(cp932)";
binmode STDERR, ":encoding(cp932)";
open DEF_STDOUT, ">&STDOUT";
open STDOUT, ">", "./test.txt" || die "ファイルが開けません: $!";
binmode STDOUT, ":encoding(cp932)";
print "testです";
close STDOUT;
open STDOUT, ">&DEF_STDOUT";
binmode STDOUT, ":encoding(cp932)";
print "生成しました\n";

875 名前:デフォルトの名無しさん mailto:sage [2012/02/26(日) 17:52:22.23 ]
ピログラムも知らないど素人向けでもないのにマルチバイト文字でメッセージ出す奴は基地害

876 名前:874 mailto:sage [2012/02/26(日) 18:01:58.62 ]
それと多分、
open STDOUT, ">", "./test.txt" or die "ファイルが開けません: $!";

877 名前:デフォルトの名無しさん mailto:sage [2012/02/26(日) 18:40:37.78 ]
そこでjperlなわけか

878 名前:852 mailto:sage [2012/02/26(日) 19:09:09.34 ]
>>859,874
レス有難うございます。
標準出力を切り替える前にも出力するためその行はコメントアウトできないです。

色々試してみたところ、デフォルトのSTDOUTを1度rawにするとsub.pl、main.pl共々上手く行きました。
binmode STDOUT, ":raw";
open DEF_STDOUT, ">&STDOUT";

重ねがけのような状態になっていたのでしょうか・・?
しかしsub.pl単体では上手く動いていたので謎です。
結局>>852の # この行を消すと、main.plの実行は上手くいくのですが、単体実行でwide character in print 化けます。
の理由は分からず。
Ubuntuの方が試してくださった所どちらも上手く動いたとの事なので、
Windowsでの挙動があやしいということなのかもしれません。

879 名前:デフォルトの名無しさん mailto:sage [2012/02/26(日) 19:10:56.18 ]
アホかよ……
cp932なんだからwinでためさねーと意味ないじゃん


880 名前:874 mailto:sage [2012/02/26(日) 19:36:49.24 ]
>>878
use utf8;

binmode(STDOUT, ":encoding(cp932)");
binmode(STDOUT, ":encoding(cp932)");
layer(*STDOUT);
print "あああ";

sub layer { warn(join("/", PerlIO::get_layers($_[0])), "\n") }

これでアウトだしPerlIOは良く分からん。
確かに:rawを入れると直るね。



881 名前:デフォルトの名無しさん mailto:sage [2012/02/26(日) 19:47:34.18 ]
cp932でエンコードしたものをもう一度cp932でエンコードしようとしているんだから上手く動かないのは当然じゃないの?

882 名前:デフォルトの名無しさん mailto:sage [2012/02/26(日) 20:12:07.34 ]
だから初心者はjperl使えと口が酸っぱくなるほど、、、

883 名前:874 mailto:sage [2012/02/26(日) 20:20:55.64 ]
>>881
ドキュメントに書いてくれええと思う。

884 名前:デフォルトの名無しさん mailto:sage [2012/02/26(日) 20:37:36.28 ]
cp932で二重エンコードは単なる間違いだけど、
utf-8で二重にやっちゃうのは頻繁に見る
そしてフラグを剥がして解決する

885 名前:デフォルトの名無しさん mailto:sage [2012/02/26(日) 20:58:17.86 ]
utf-8で二重にやっちゃうのも単なる間違いだからw

886 名前:デフォルトの名無しさん mailto:sage [2012/02/26(日) 21:01:31.55 ]
そろそろ1レスでわかるやつがペーストされるいよかん。

887 名前:デフォルトの名無しさん mailto:sage [2012/02/26(日) 22:46:15.18 ]
encode済みの文字列をencodeできてしまうのはフェイルセーフが欠如してるとしか思えんな
フラグ見れるのにそれ見ないんだぜ?

888 名前:デフォルトの名無しさん mailto:sage [2012/02/26(日) 23:23:03.22 ]
そんなもん言語仕様でどうにかしろよ

889 名前:デフォルトの名無しさん mailto:sage [2012/02/26(日) 23:26:38.58 ]
言語仕様までいかなくてもEncodeモジュール側でなんとかできそうなもんだが…
問い合わせてみようかな

890 名前:デフォルトの名無しさん mailto:sage [2012/02/26(日) 23:57:50.15 ]
それよか、ひとくるみしたらどうだ?おれならそうする



891 名前:デフォルトの名無しさん mailto:sage [2012/02/27(月) 00:21:44.60 ]
>>852のsub.plは、二度がけしているにもかかわらず
windows7のコマンドプロンプトだと化けないな

use utf8;
binmode STDOUT, ":encoding(cp932)";
open DEF_STDOUT, ">&STDOUT";
open STDOUT, ">&DEF_STDOUT";
binmode STDOUT, ":encoding(cp932)";
layer(*STDOUT);
print "生成しました\n";
sub layer { warn(join("/", PerlIO::get_layers($_[0])), "\n") }

>perl sub.pl
unix/crlf/encoding(cp932)/utf8/encoding(cp932)/utf8
生成しました

892 名前:デフォルトの名無しさん mailto:sage [2012/02/27(月) 01:12:18.48 ]
甘やかすな
二重encodeは問答無用で青画面

893 名前:デフォルトの名無しさん mailto:sage [2012/02/27(月) 01:27:30.39 ]
Win95並みのクソOSだなそれ

894 名前:デフォルトの名無しさん mailto:sage [2012/02/27(月) 02:39:42.45 ]
d.hatena.ne.jp/perlcodesample/20091118/1246679588

ここ読め、かなり良いから。
変な使い方するな、理解してもないのに変な楽の仕方するな

895 名前:デフォルトの名無しさん mailto:sage [2012/02/27(月) 06:48:35.60 ]
とはいうもののクソの口から本当の楽の仕方は出てこない、
書かれることもない、

なぜなら>>894の能力が低いから


896 名前:デフォルトの名無しさん mailto:sage [2012/02/27(月) 06:57:34.31 ]
use utf8を書かないとうまく動かない時ってどんな時だ?

897 名前:デフォルトの名無しさん mailto:sage [2012/02/27(月) 08:05:06.77 ]
>>896
ASCII 以外が必要なほぼすべての時。


898 名前:デフォルトの名無しさん [2012/02/27(月) 13:52:22.69 ]
>>895
それめっちゃ分かる。
お前の能力めっちゃ低いもんな。

899 名前:デフォルトの名無しさん [2012/02/27(月) 14:04:23.67 ]
なぜなら俺はイタリアンじゃないから

900 名前:デフォルトの名無しさん mailto:sage [2012/02/27(月) 19:39:56.47 ]
アクセス解析で環境変数を取得するときに、リファラーに井桁が入ってると変数に代入されず
リファラーが取得できなくなってしまうのはどうすれば解決できますか



901 名前:デフォルトの名無しさん mailto:sage [2012/02/27(月) 19:58:34.20 ]
>>900
こちらへどうぞ。

Perlコーディング初心者質問スレ Part 63
kohada.2ch.net/test/read.cgi/php/1315559509/

902 名前:デフォルトの名無しさん mailto:sage [2012/02/27(月) 20:06:31.96 ]
>>901
誘導ありがとうございます。失礼しました。

903 名前:デフォルトの名無しさん [2012/02/27(月) 20:14:14.61 ]
勢いを見てもこのスレがPHPより人気なのが分かる

904 名前:デフォルトの名無しさん [2012/02/27(月) 20:16:12.30 ]
つーかPHPの質問スレ自体がなくてワラタw
PHP厨はこの世に存在しないのと一緒w

905 名前:デフォルトの名無しさん mailto:sage [2012/02/27(月) 20:21:55.19 ]
普通にたくさんあるだろ

906 名前:デフォルトの名無しさん [2012/02/27(月) 20:23:33.91 ]
それがなかったんだよw
バトルロワイヤルとかHello Worldを書き込むとかそういうスレしかなかったwww

907 名前:デフォルトの名無しさん [2012/02/27(月) 20:24:47.12 ]
>>905
つーか一覧でCtrl+Fですぐ調べられるから見てみろってwwww

908 名前:デフォルトの名無しさん mailto:sage [2012/02/27(月) 20:31:15.49 ]
【Perl,PHP】LLバトルロワイヤル21【Ruby,Python】
【perl->php】お願いがあるんだ
PHP使ってる奴らが憎いPerl>>>PHP
PHPを使って2ちゃんねるにHello Worldを書き込む
php使ってる奴はアホ、これからはRuby on Rails!


すさまじい
怨念が渦巻いている


909 名前:デフォルトの名無しさん mailto:sage [2012/02/27(月) 20:36:02.02 ]
やっぱりPerlだよな。
PHPとか言語仕様が糞なうえにセキュリティホール付でリリースするからマジないわ。
ゴミすぎてPerlとの比較対象にすらならない。
PHP選んでるって時点で情弱。
馬鹿にされたくなかったらPerlを選んでおくべき。

910 名前:デフォルトの名無しさん mailto:sage [2012/02/27(月) 20:53:58.47 ]
数えきれないほどあるけど?
【PHP】下らねぇ質問はID出して書き込みやがれ 116
kohada.2ch.net/test/read.cgi/php/1330224598/
PHP関連の書籍 第7版
kohada.2ch.net/test/read.cgi/php/1324952317/
IDにPerlが出たら神!PHPが出たらシメジ Part32
kohada.2ch.net/test/read.cgi/php/1303228484/
【PHP】フレームワーク CakePHP 13ホール目【v2.0】
kohada.2ch.net/test/read.cgi/php/1320768310/
【PHP】Yii Framework
kohada.2ch.net/test/read.cgi/php/1291909271/
【PHP】PHPフレームワーク総合スレ15
kohada.2ch.net/test/read.cgi/php/1292118428/
PHPでオークションサイトを作ろう!
kohada.2ch.net/test/read.cgi/php/1170317609/
[PHP][フレームワーク]CodeIgniter Part2
kohada.2ch.net/test/read.cgi/php/1299595202/
【PHP】ビューと業務ロジックを混在させる【PHP】
kohada.2ch.net/test/read.cgi/php/1254298092/
【初心者】励ましあいながらサイト製作【PHP】
kohada.2ch.net/test/read.cgi/php/1125711034/
Perl VS PHP
kohada.2ch.net/test/read.cgi/php/982591467/
PHP>Java>>>超えられない壁>>>ASP>Perl
kohada.2ch.net/test/read.cgi/php/1178094278/
Java VS PHP
kohada.2ch.net/test/read.cgi/php/1177676518/
symfony PHPフレームワークpart2
kohada.2ch.net/test/read.cgi/php/1268753684/
【PHP】鏡の国2ch bbs
kohada.2ch.net/test/read.cgi/php/1234765454/




911 名前:デフォルトの名無しさん mailto:sage [2012/02/27(月) 21:28:19.27 ]
>>909 「セキュリティホール付でリリース」
コミュニティーがたよりない

912 名前:デフォルトの名無しさん mailto:sage [2012/02/27(月) 21:53:31.46 ]
PHPにはだんこがいみたいなひといるの?

913 名前:デフォルトの名無しさん [2012/02/28(火) 00:05:00.57 ]
質問なのですがPerlでこういうサイトって作れますか?
ttp://findrjp.com/formen/
これはPHPだと思うんですけど
作るとしたらelsifで作る感じでしょうか?
こういうのってすぐ作れますか?

914 名前:デフォルトの名無しさん [2012/02/28(火) 00:43:21.62 ]
>>913
>>1を100回読んでから出直せゴミクズ

915 名前:デフォルトの名無しさん mailto:sage [2012/02/28(火) 00:52:16.20 ]
>Perlでこういうサイトって作れますか?
>ttp://findrjp.com/formen/
お前は言語を何だと思ってんだ?
PerlだろうとCだろうとC++だろうとシェルスクリプトだろうとできるだろ。

>これはPHPだと思うんですけど
「思う」じゃねーよ、Perlだったらどうすんだ?

>作るとしたらelsifで作る感じでしょうか?
そりゃ条件分岐くらい使うでしょうよ。

>こういうのってすぐ作れますか?
すぐの意味が分からないが仕様書出してもらえれば寝起き2時間で作れるよ。
文字通り朝飯前。

916 名前:デフォルトの名無しさん [2012/02/28(火) 01:36:50.46 ]
>>915
PHPとかperlってどこで判断するんですか?
結果ページのurlにはphpって入ってますけど

917 名前:デフォルトの名無しさん mailto:sage [2012/02/28(火) 02:35:17.55 ]
死ねよ上げんな池沼

918 名前:デフォルトの名無しさん mailto:sage [2012/02/28(火) 04:09:04.78 ]
>>916
鯖管に聞かなきゃ分からない
一つの言語だけでできてるという保証もなし
精度向上がどうのって書いてあったから
バックエンドではcで書いたややこしいシステムが動いてるかもよ

919 名前:デフォルトの名無しさん mailto:sage [2012/02/28(火) 10:15:15.72 ]
ひとつ言える事は・・・
吐いてるHTMLは死ぬほど汚い、素人が作った物だろって事。

920 名前:デフォルトの名無しさん mailto:sage [2012/02/28(火) 10:16:26.01 ]
寝起きで朝飯前食う前にやっつけで作ったんじゃね?



921 名前:デフォルトの名無しさん mailto:sage [2012/02/28(火) 10:24:20.67 ]
ステマそのものじゃねーか。つまらん。

922 名前:デフォルトの名無しさん [2012/02/28(火) 18:33:03.38 ]
CGIの話はWebProg板でやれゴミ

923 名前:デフォルトの名無しさん [2012/02/28(火) 19:56:56.41 ]
>>919
さすがプロの方
ありがとうございます

924 名前:デフォルトの名無しさん [2012/02/28(火) 20:59:01.76 ]
バーカ

925 名前:デフォルトの名無しさん [2012/02/29(水) 21:56:03.52 ]
阿呆

926 名前:デフォルトの名無しさん [2012/02/29(水) 22:01:52.56 ]
$a = time;

for( $i = 0; $i < 10000; $i++ ){
$x = $x + 1;
}

$b = time;
$c = $b - $a;

print "$c";

927 名前:デフォルトの名無しさん mailto:sage [2012/03/01(木) 04:13:20.21 ]
my $a = time;
my $x = 0;
$x += 1 for 0 .. 9999;
print time - $a, "\n";

928 名前:デフォルトの名無しさん mailto:sage [2012/03/01(木) 07:16:10.31 ]
ミリ秒まで計測できるよう改良してあげたぞ

my $a = time;
my $x = 0;
for(my $i = 0; $i < 10000; $i++ ){ $x += 1; }

my $b = time;
$c = rand($b - $a);

print $c. "\n";

929 名前:デフォルトの名無しさん mailto:sega [2012/03/01(木) 09:19:19.20 ]
文字列を改行つきで表示させたいとき、
print "$c\n";
print $c ."\n";
のどちらが良い方法ですか?
個人的には上の方法が好きですが、特に理由はありません。

930 名前:デフォルトの名無しさん mailto:sage [2012/03/01(木) 09:26:06.30 ]
>>929
俺は下の方が好き。
Perlは変数がダブルクォートの中にあっても展開してくれるけど、
他の言語では展開しない物の方が多い。
Perlでいう全部シングルクォートと同じ感じ。

気持ち悪いから下の方法を取ってるだけで、それ以上深い意味はない。



931 名前:デフォルトの名無しさん mailto:sage [2012/03/01(木) 09:55:32.17 ]
print文ならむしろカンマを使うね
print $c, "\n";


932 名前:デフォルトの名無しさん mailto:sage [2012/03/01(木) 11:52:40.78 ]
. で接続すると、括弧が余計に必要になったりするから嫌

933 名前:デフォルトの名無しさん mailto:sage [2012/03/01(木) 12:16:53.96 ]
好みって事で、どうでも好きにしろよ

934 名前:デフォルトの名無しさん mailto:sage [2012/03/01(木) 12:27:40.83 ]
print "$c\n";
print $c ."\n";
新たに文字列が作られる。

print $c, "\n";
新たな文字列は作られない。

したがって,推奨と信じてきたが違うのか?

935 名前:デフォルトの名無しさん [2012/03/01(木) 12:30:27.47 ]
mes myText + "\n"

936 名前:デフォルトの名無しさん mailto:sage [2012/03/01(木) 12:58:42.67 ]
>>934
推奨かどうかはともかく、コピーが作られなくてメモリに優しいというのは多分合ってるよ。
perldoc.jp/docs/perl/5.10.1/perlfaq3.pod#How32can32I32make32my32Perl32program32take32less32memory63

937 名前:デフォルトの名無しさん mailto:sage [2012/03/01(木) 13:53:13.26 ]
コンマ使えば変数分のメモリが節約できるのか〜
変数の内容にもよるし微々たるものな事も多いだろうけど、
でも少しでも軽くするのはプログラマの努めだし、
軽くするために特にトリッキーな事になってる訳でもないし、
これからは積極的にコンマ使っていくよ教えてくれてありがとう。

938 名前:デフォルトの名無しさん [2012/03/01(木) 14:29:44.49 ]
>>937の内容に可読性に関する話が一切出ていない。恐らく真性の基地害。
保守性を無視した「自分さえ分かれば良い」コードを書くゴミの典型。プログラムをする資格のそもそもない人種。
それでプログラマの努めとか言っちゃってるのは恥さらし通り越して最早プログラマに対して失礼。
ほんとクズだなこいつ。

939 名前:デフォルトの名無しさん mailto:sage [2012/03/01(木) 14:34:23.67 ]
コンマなんか使うと可読性が落ちる(キリッ

940 名前:デフォルトの名無しさん mailto:sage [2012/03/01(木) 14:38:37.11 ]
そんなに軽くしたいならPerlやめてCで書けばいいんじゃね?



941 名前:デフォルトの名無しさん [2012/03/01(木) 14:48:09.89 ]
>>937は馬鹿だからそういう発想はできない。

942 名前:デフォルトの名無しさん mailto:sage [2012/03/01(木) 15:03:48.12 ]
@a = (1, 2);
print @a . "\n";
print @a , "\n";

みたいな時に挙動が変わる

943 名前:デフォルトの名無しさん mailto:sage [2012/03/01(木) 15:04:58.33 ]
何だ、この流れ。

944 名前:デフォルトの名無しさん mailto:sage [2012/03/01(木) 15:05:43.83 ]
>>938
> 軽くするために特にトリッキーな事になってる訳でもないし、
これが可読性に言及していると読み取れないお前は、ディスレクシアの疑いが高い。
専門医の診察を受けることを勧める。
もっとも診察受けても治らないけど、この業界文章読み取る能力が欠如してるとつらいぞ。

945 名前:デフォルトの名無しさん mailto:sage [2012/03/01(木) 15:15:57.49 ]
>>938
>>941
どうしてエキサイトしてるのか意味がわからないw

946 名前:デフォルトの名無しさん mailto:sage [2012/03/01(木) 15:16:41.19 ]
この業界はどんな条件でもつらい
自然言語でプログラムが組めるようになるまでは離れるのが吉

947 名前:デフォルトの名無しさん mailto:sage [2012/03/01(木) 15:19:34.15 ]
可読性の高いトリッキーなコードと
可読性の低いトリッキーなコードあるよな

948 名前:デフォルトの名無しさん mailto:sage [2012/03/01(木) 15:22:04.76 ]
say $c;

949 名前:デフォルトの名無しさん [2012/03/01(木) 15:30:06.89 ]
>>944は可読性の低いトリッキーなコードしか見たことないんじゃね?

950 名前:デフォルトの名無しさん mailto:sage [2012/03/01(木) 15:32:45.09 ]
カスども仲良くしろ



951 名前:デフォルトの名無しさん mailto:sage [2012/03/01(木) 15:34:16.52 ]
>>949
ヒント: 類は友を呼ぶ
>>944みたいな文章しか書けないような奴が集まってみろよ
その中に可読生の高いトリッキーなコード書ける奴がいると思うのか

952 名前:デフォルトの名無しさん mailto:sage [2012/03/01(木) 15:35:35.67 ]
何にキレてるのか意味がわからない・・・
そんなにコンマが嫌いなのかw
コンマ入ると読めなくなる程度の奴らなのかw

953 名前:デフォルトの名無しさん mailto:sage [2012/03/01(木) 15:47:05.05 ]
>>949
キミ、多分ディスレクシアだよ。つらいだろうが自分の特性を受け入れる事が大事。

>>951
煽るときは漢字間違えないようにしろよ。あと、お前の過去に何があったか知らな
いが、コンマは噛みつかないからそんなに怖がる必要はないぞ。

954 名前:デフォルトの名無しさん mailto:sage [2012/03/01(木) 15:49:36.00 ]
そもそもカンマってなんであるんだ?構文解析上必要なのか疑問。(←わざわざカンマで区切らずともスペースで区切られてるだろ)
print $s "\n"; これでも十分区切りはわかる。カンマは不必要。ではなぜそうなっていないのか、逆にカンマが必要な場面とはどこか。
print 3 + 5, 8; こういう場合だな。二項演算子が混じってくるケース。カンマを端折ってprint 3 + 5 8とすると区切りが分からなくなる。
ただカンマの代わりに括弧で括ってprint (3 + 5) 8とすればこれで区切りは分かる。カンマは入らない。

項の区切りにカンマを入力しなくていいが、二項演算子使う場合はカッコでくくるコスト>項の区切りに毎回をカンマ入力するコスト

だと思うんだが

955 名前:デフォルトの名無しさん mailto:sage [2012/03/01(木) 15:52:00.19 ]
もうLispとかHaskellやれよ。
なんでPerlだけが噛みつかれるんだよ…

956 名前:デフォルトの名無しさん mailto:sage [2012/03/01(木) 15:55:20.93 ]
>>954

     /: : : : : __: :/: : ::/: : ://: : :/l::|: : :i: :l: : :ヽ: : :丶: : 丶ヾ    ___
     /;,, : : : //::/: : 7l,;:≠-::/: : / .l::|: : :l: :|;,,;!: : :!l: : :i: : : :|: : ::、  /     ヽ
    /ヽヽ: ://: :!:,X~::|: /;,,;,/: :/  リ!: ::/ノ  l`ヽl !: : |: : : :l: :l: リ / そ そ お \
   /: : ヽヾ/: : l/::l |/|||llllヾ,、  / |: :/ , -==、 l\:::|: : : :|i: | /   う う  前  |
.   /: : : //ヾ ; :|!: イ、||ll|||||::||    ノノ  イ|||||||ヾ、 |: ::|!: : イ: ::|/   な 思 が
   /: : ://: : :ヽソ::ヽl |{ i||ll"ン    ´   i| l|||l"l `|: /|: : /'!/l     ん う
 ∠: : : ~: : : : : : : :丶ゝ-―-      ,  ー=z_ソ   |/ ハメ;, :: ::|.   だ ん
   i|::ハ: : : : : : : : : : : 、ヘヘヘヘ     、  ヘヘヘヘヘ /: : : : : \,|.   ろ な
   |!l |: : : : : : : : :、: ::\    、-―-,      / : : :丶;,,;,:ミヽ   う  ら
     丶: :ハ、lヽ: :ヽ: : ::\__  `~ "      /: : ト; lヽ)   ゝ
       レ `| `、l`、>=ニ´        ,  _´ : :} `   /
         ,,、r"^~´"''''"t-`r、 _  -、 ´ヽノ \ノ   /    お ・
       ,;'~  _r-- 、__     ~f、_>'、_         |  で  前 ・
      f~  ,;"     ~"t___    ミ、 ^'t         |  は  ん ・
      ,"  ,~         ヾ~'-、__ ミ_ξ丶     |  な  中 ・
     ;'  ,イ ..          ヽ_   ヾ、0ヽ丶    l         /
     ( ;":: |: :: ..          .`,   ヾ 丶 !    \____/
     ;;;; :: 入:: :: ::      l`ー-、   )l   ヾ 丶
     "~、ソ:: :い:: :     \_  ノ ,    ヾ 丶

957 名前:デフォルトの名無しさん mailto:sage [2012/03/01(木) 16:04:09.73 ]
>>954
新しい言語を作るつもりなら期待してやっても良いぞ
print FILEHANDLE LIST

958 名前:デフォルトの名無しさん mailto:sage [2012/03/01(木) 16:07:18.91 ]
>カンマを端折ってprint 3 + 5 8とすると区切りが分からなくなる。
分からなくはない
コンパイラが8が演算子かどうか調べればいい
見た目が分かりにくくはなるが

959 名前:デフォルトの名無しさん mailto:age [2012/03/01(木) 16:08:43.91 ]
このスレ馬鹿が多いなw
晒しage

960 名前:デフォルトの名無しさん mailto:sage [2012/03/01(木) 16:12:51.04 ]
こういうのを自己言及と言います



961 名前:デフォルトの名無しさん mailto:sage [2012/03/01(木) 16:14:04.23 ]
カリー化と括弧省略の合わせワザが使えたら、間違いなく地獄を見るな。

962 名前:デフォルトの名無しさん mailto:sage [2012/03/01(木) 16:14:28.41 ]
perlは文法が適当だからな
括弧で括るけど、気に入らなければ無くてもいい
ヒュペリオンよりも適当

963 名前:デフォルトの名無しさん mailto:sage [2012/03/01(木) 16:34:31.90 ]
$a = 1;
print ($a+1)*2 . "\n";

これでいいだろ、と直感的には思うのに、

print (($a+1)*2) . "\n";

こうでないと思い通りには動かない

964 名前:デフォルトの名無しさん mailto:sage [2012/03/01(木) 16:42:07.59 ]
後者も上手く動いてないだろ。改行文字は出力されない。
ラクダ本曰く関数呼び出しは関数呼び出しのように振る舞う。
print (($a+1)*2) . "\n";これは
print (($a+1)*2)で1つの関数呼び出しになっている。#=> 4が出力される
その返り値に. "\n"されたものがヴォイドコンテキストで評価される。 #=> "4\n"が生成されて捨てられる

965 名前:デフォルトの名無しさん mailto:sage [2012/03/01(木) 16:45:33.11 ]
print (($a+1)*2 . "\n");
こっち

966 名前:デフォルトの名無しさん mailto:sage [2012/03/01(木) 16:48:18.00 ]
つーかそれは
print +($a+1)*2 . "\n";
でもできるよね

967 名前:デフォルトの名無しさん mailto:sage [2012/03/01(木) 16:49:31.13 ]
その+地味に使えるよな。
+演算子は前に項がない場合何もしない、だっけ。

968 名前:デフォルトの名無しさん mailto:sage [2012/03/01(木) 17:11:27.24 ]
でもトリッピーだよな
何このプラス?、取っていい? って思う
書いた本人が暫く経つと思う

全体を括弧で括るのも、取っていい? って思いがちだけど
ぱっと見に異常さがなくて、かつ最もシンプルな書き方がベスト

969 名前:デフォルトの名無しさん mailto:sage [2012/03/01(木) 17:47:35.32 ]
トリッピーってのは
書いた本人なのに暫く経つとなんで「+」つけたか忘れちゃうようなトリ頭のこと?

970 名前:デフォルトの名無しさん mailto:sage [2012/03/01(木) 17:49:41.94 ]
英語教材のアレだろ
そのわりにはアレだな
アレ
とりっぴぃ()




971 名前:デフォルトの名無しさん mailto:sage [2012/03/01(木) 18:07:50.60 ]
# 頭の+は取るな
とか書いとけば嫌でも思い出すけど、
意味があってやってることを忘れてると、普通に消し忘れに見えるぞ
それほどまでに print は括弧を付けて使わない

972 名前:デフォルトの名無しさん mailto:sage [2012/03/01(木) 21:28:37.85 ]
@a = ([1, 2], [3, 4]);
print $a[0][0];

$b = [[1, 2], [3, 4]];
print $$b[0][0];

どっちが好き?

973 名前:デフォルトの名無しさん [2012/03/01(木) 21:59:51.62 ]
うるさいゴミ

974 名前:デフォルトの名無しさん mailto:sage [2012/03/01(木) 22:06:46.87 ]
これがオレの流法
print $b->[0]->[0]';

975 名前:デフォルトの名無しさん mailto:sage [2012/03/01(木) 22:11:24.09 ]
print $c, "\n";
のprintの話ではないけど…

Perlの前に、AWKがあった。
AWKの場合、
$c "\n"
で連結される。

「何もないものを演算子にしてしまうと、/pat/ /pat/がパースできなくなってしまう。
なぜなら、3番目のスラッシュが除算演算子と解釈されてしまうからだ」
『プログラミングPerl改訂版』2000年3月21日オライリー・ジャパン

976 名前:975 mailto:sage [2012/03/01(木) 22:15:22.43 ]
>>975は、p. 610
awkユーザがはまりやすい罠(8.2.3)


977 名前:デフォルトの名無しさん mailto:sage [2012/03/01(木) 22:34:37.21 ]
結合する時は結合先のバッファを確保して、strcpyすんだよ
#include <string.h> を忘れがちだから注意な

978 名前:デフォルトの名無しさん mailto:sage [2012/03/01(木) 22:52:27.95 ]
>>972
ケースバイケース

979 名前:デフォルトの名無しさん mailto:sage [2012/03/02(金) 01:22:35.76 ]
ケースバイケースとか状況に依るとか言うやつで
特徴を掴んだ典型例を2つ3つ示せない奴は無能

980 名前:デフォルトの名無しさん mailto:sage [2012/03/02(金) 01:40:41.97 ]
後ろから詰めていきたいのですが。
($hoge, $huge, $asdf) = @aryとした場合、リストが左寄せで代入され、要素が不足した部分にはundefが入りますが
これを右寄せで代入したいです。
最初のゲスコード

my ($sensen, $sensyu, $konsyu);
($sensen, $sensyu, $konsyu) = @ARGV if (@ARGV == 3);
($sensyu, $konsyu) = @ARGV if (@ARGV == 2);

もっと良い感じに出来そうなのですが、皆さんならどのように書きますか?

unshift @ARGV, undef if (@ARGV == 2);
my ($sensen, $sensyu, $konsyu) = @ARGV;

今はこんな感じにしています。もっと変な方法を教えて下さい。



981 名前:デフォルトの名無しさん mailto:sage [2012/03/02(金) 01:48:51.67 ]
好みを訊かれてるのにケースバイケースになる奴は、
天気によってコーディングのスタイルを変える

982 名前:デフォルトの名無しさん [2012/03/02(金) 01:53:59.72 ]
俺も人に何かきかれたときに、自分のレベルでは太刀打ちできないときはケースバイケースって言ってるよ
40%くらいの確率で「ああ、やっぱそうっすよねー」って丸め込める
でも1対1のときで40%くらいだから、集団の中で使うには分が悪い
>>979みたいなアグレッシブな奴にバレる

983 名前:デフォルトの名無しさん mailto:sage [2012/03/02(金) 01:58:10.41 ]
晴れの日にはカラッと見通しの良く可読性のいい気分の良いコード
雨の日にはしっとり上品で丁寧なアルゴリズム、雨の中純白色した傘をさし、しとしとと歩くお嬢様のようにどこか儚いコード

984 名前:デフォルトの名無しさん mailto:sage [2012/03/02(金) 02:03:44.37 ]
>>980
my ($konsyu, $sensyu, $sensen) = reverse @ARGV;

985 名前:デフォルトの名無しさん mailto:sage [2012/03/02(金) 02:31:04.74 ]
>>980
my ($sensen, $sensyu, $konsyu) = @ARGV[-3, -2, -1];

986 名前:デフォルトの名無しさん mailto:sage [2012/03/02(金) 04:26:57.50 ]
Perlのスレッドについて質問です。
メインスレッドで無限ループのスレッドを生成したのですが、
メインスレッドから終了させる方法がわかりません。
下記のような方法では、メインスレッドも死んでしまいます。
$thread->exit();

どうすれば良いですか?

987 名前:986 mailto:sage [2012/03/02(金) 04:45:58.41 ]
自己解決しました

988 名前:デフォルトの名無しさん mailto:sage [2012/03/02(金) 10:07:41.72 ]
なんか、@ARGVを直で書くべきでない気がするので、
shiftを何回も使う以外の方法で、いい感じに引き数を取得する方法は無いだろうか

989 名前:デフォルトの名無しさん mailto:sage [2012/03/02(金) 10:29:57.30 ]
984の方法があまりにも鮮やかだったから
嫌みでもタレてんの?


990 名前:デフォルトの名無しさん mailto:sage [2012/03/02(金) 11:04:43.35 ]
> なんか、@ARGVを直で書くべきでない気がするので、

なんか気がすると言われても、他の人はそう思ってないから……



991 名前:デフォルトの名無しさん mailto:sage [2012/03/02(金) 11:09:52.04 ]
>>988
引数を便利に取得するモジュールいろいろあると思うから探したら?

992 名前:デフォルトの名無しさん mailto:sage [2012/03/02(金) 12:09:46.45 ]
>>989
自分で鮮やかとか言うなし

993 名前:デフォルトの名無しさん mailto:sage [2012/03/02(金) 12:19:43.13 ]
Getopt つかえば @ARGV はあんまり参照しなくていいじゃん。


994 名前:デフォルトの名無しさん mailto:sage [2012/03/02(金) 12:30:30.89 ]
バカがこねくりまわし時間とて3行費やして自己満足してるのに
リバースで一行、

バカが@ARGV使うなとかワメくのもわかるよ
嫉妬と無能の自己紹介そのものだもん


995 名前:デフォルトの名無しさん mailto:sage [2012/03/02(金) 13:11:35.16 ]
( ..)φメモメモ

996 名前:デフォルトの名無しさん mailto:sage [2012/03/02(金) 13:14:36.94 ]
次スレは>>1001がよろ

997 名前:デフォルトの名無しさん mailto:sage [2012/03/02(金) 14:29:56.22 ]
>>993
モジュール呼び出しはいやだ

998 名前:デフォルトの名無しさん mailto:sage [2012/03/02(金) 14:39:26.60 ]
次スレ
Perlについての質問箱 51箱目
toro.2ch.net/test/read.cgi/tech/1330666216/

999 名前:デフォルトの名無しさん mailto:sage [2012/03/02(金) 15:07:45.56 ]
ぎんがてつどう

1000 名前:デフォルトの名無しさん mailto:sage [2012/03/02(金) 15:18:25.06 ]
の朝



1001 名前:1001 [Over 1000 Thread]
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。






[ 新着レスの取得/表示 (agate) ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<232KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef