Perlについての質問箱 50箱目at TECH
Perlについての質問箱 50箱目 - 暇つぶし2ch300:デフォルトの名無しさん
12/01/31 04:22:42.35
300ゲト

301:デフォルトの名無しさん
12/01/31 04:46:57.94
それでもゴミPHPよりははるかにマシ

302:デフォルトの名無しさん
12/01/31 08:08:45.72
0xFF これは16進数です

と何が違うんだい?

303:デフォルトの名無しさん
12/01/31 10:46:32.08
NOWHOW

ここはつっこんでいいところなのだろうか。
しかし恥かかされたと憤ってさらに草生やされたらたまらんからスルーがいいのかな…

304:デフォルトの名無しさん
12/02/01 01:51:41.90
そのほうがいい。それに今もDOS使ってるから、BATノウハウも必要だしな。


305:デフォルトの名無しさん
12/02/01 03:31:27.03
またそんな必死に釣りを仕掛けんでも

306:デフォルトの名無しさん
12/02/01 03:49:11.39
>>303
草に隠れて見逃してたw なんというステルス

307:デフォルトの名無しさん
12/02/01 05:22:54.38
PerlってーとCGIとしての用途しか思い浮かばないけどお前ら何作ってんの?

308:デフォルトの名無しさん
12/02/01 06:12:14.08
自分だと、サーバの自動処理とか大体Perlだなー。

309:デフォルトの名無しさん
12/02/01 07:14:13.51
$str = <STDIN>;
と記述しても入力欄が表示されないんですが、どうしたらいいのでしょうか。
何か他に記述することがあるのですか、どなたか教えてくださいませ。


310:デフォルトの名無しさん
12/02/01 07:44:01.47
どういう環境でperlを起動させているのかわからないと
答えようがないんじゃないかと

311:デフォルトの名無しさん
12/02/01 08:07:38.38
>>307
俺はむしろCGIで使ったことがないw

Unix系なら各種フィルタやシェルスクリプトでサクッとやれることが
Windowsのデフォルトの環境だとサクッと出来ない
でもコマンド一式入れるのは色々と面倒いから
Perlにその辺をやらせてるな
ワンライナーだったり、.batに埋め込んだり…

312:デフォルトの名無しさん
12/02/01 08:36:29.83
> Windowsのデフォルトの環境だとサクッと出来ない

JScriptつかえばいいやん。


313:デフォルトの名無しさん
12/02/01 09:02:31.35
>>312
おめぇはそれでいいや

314:デフォルトの名無しさん
12/02/01 11:02:27.54
>>312
JScriptg/WSHで一通りのテキスト処理は出来るけど
それは果たして「サクッと」と呼べるのだろか

315:デフォルトの名無しさん
12/02/01 11:55:56.52
学生の頃は掲示板とか作って遊んでたが
今は禿丸じゃ手に負えないテキスト置換に使っている。

316:デフォルトの名無しさん
12/02/01 13:30:50.51
Apacheのログ解析ツールとか作ったな
既存のツールだと不満だから作ったが
結局解析結果を見るのに飽きて全く見なくなって、いつの間にかどっかいった

317:デフォルトの名無しさん
12/02/01 16:06:03.12
Perlを使い始めて20年、今でも日常のちょっとしたツールはこれで作ってる。
面倒な文字列処理があまりにも易々とできてしまうので、やめられん。

318:デフォルトの名無しさん
12/02/01 20:22:37.76
$HOME/bin/ 以下の俺コマンドの類はほとんどPerlだわ。

319:デフォルトの名無しさん
12/02/01 23:09:02.27
CGI、CGIってよく言われてるけど、おれもあんまり作ったことがない。
Perlはテキスト処理や、日ごろのちょっとした処理に使ってる。

320:デフォルトの名無しさん
12/02/01 23:11:17.91
>>309を書き込んだ者です。
環境は、お名前ドットコムというところのレンタルサーバーで、ぽちぽち練習しております。
DELLのノートPC、WinXPを使用しています、エデイタはPadreのデフォルト設定です。

何度試しても<STDIN>が使えないのですが、どうしたらいいのでしょうか。

321:デフォルトの名無しさん
12/02/01 23:13:36.06
print STDERR "お名前を入力してください=";
$str = <STDIN>;


322:デフォルトの名無しさん
12/02/01 23:14:38.96
chomp($str);
print STDERR "こんにちは、$str さん。\n";

323:デフォルトの名無しさん
12/02/01 23:19:32.99
print "Hello, world\n";

は実行できるの?

324:デフォルトの名無しさん
12/02/01 23:24:12.08
エデイタに違和感がする。

325:デフォルトの名無しさん
12/02/01 23:40:41.42
>>320
だから一冊本を通読しろっての。何度も同じこと言わせんな。

326:デフォルトの名無しさん
12/02/02 00:03:11.64
perl のバージョンが書いてないから、インストールされてないことも
考えられるね。きっと Hello, world も無理だよね。

327:デフォルトの名無しさん
12/02/02 00:05:05.83
>>320=基地害

328:デフォルトの名無しさん
12/02/02 00:44:52.33
>>325-327
解決策を提示できないなら黙ってろゴミ

329:デフォルトの名無しさん
12/02/02 01:12:37.86
>>328
なにが「解決策」だよw
池沼はうせろ

330:デフォルトの名無しさん
12/02/02 01:22:20.27
>>320
CGIに関する質問は板違いです。 >>1を参照してください。
レンタルサーバー云々の話はそちらでお願いします。

331:デフォルトの名無しさん
12/02/02 01:23:43.64
309です。
こんな池沼しかいない底辺スレで質問した私が馬鹿でした。
二度ときません。

332:325
12/02/02 01:35:56.94
>>328
解決策は提示しただろうがクズ。
>>325を100回読みなおせ精神異常。

333:デフォルトの名無しさん
12/02/02 01:40:41.96
ニートの分際で生意気だな

334:デフォルトの名無しさん
12/02/02 02:20:50.61
解決策とその理由をきちんと順序立てて提示するとなると
ちょっとした本一冊書ける量になる予感

335:デフォルトの名無しさん
12/02/02 03:26:58.47
Padreを使ってみた。コマンドプロンプトで入力すればいい。
オプションでExternalなんとかをオフってると詰むけど。

336:デフォルトの名無しさん
12/02/02 03:46:48.54
エスパーすると、PerlIOとhtmlタグを混同しとるんじゃなかろうか。
<STDIN>使えば<form><input type="text"></form>が出力されると勘違いしてる節がある。

どっちも角括弧使うし。

337:デフォルトの名無しさん
12/02/02 04:32:05.42
嬉しそうにスレ違いな書き込みをしてる社会不適合にエスパーは不要

338:デフォルトの名無しさん
12/02/02 06:01:52.06
まぁそうカリカリせず。
板違いはその通りなんだけど、どうして勘違いしちゃうのかは興味ある。
分からない方にとっちゃどう聞いていいかも分からんわけで。

自分の納品物がこんな風に動かねーってクレーム入れられた場合どう誘導するのが一番かな。
IO::Interactiveあたり噛ましてエラー吐かせて説明するとか?

339:デフォルトの名無しさん
12/02/02 07:00:14.59
>>338
雑談スレ 4
スレリンク(tech板)
ネットワークプログラミング雑談
スレリンク(tech板)
【総合】 Webprog板質問雑談スレッド 1
スレリンク(php板)
コレカラWebProgオ勉強シヨウトシテル香具師ガ雑談スルスレ
スレリンク(php板)

340:デフォルトの名無しさん
12/02/02 12:54:16.59
連想配列のkeyの名前は文字数制限や使えない文字はあるんですか?

ファイルパスをkeyにしたいんですけど好ましくないんでしょうか?
$file_path="./log/bbs_name/test.dat";

$FILE_LOCK_FLG{$file_path}=1;というようにです

341:デフォルトの名無しさん
12/02/02 13:13:33.29
それで何か問題あったの?

342:デフォルトの名無しさん
12/02/02 13:39:55.23
うるさいゴミ

343:デフォルトの名無しさん
12/02/02 13:40:32.30
連想配列のkeyの名前は文字数制限や使えない文字はあるんですか?

344:デフォルトの名無しさん
12/02/02 13:41:51.30
>>340
URLリンク(perldoc.jp)
見る限り「ハッシュキーに使える文字の制限」の記述はなかったので大丈夫だと思われ

345:デフォルトの名無しさん
12/02/02 13:42:38.12
そりゃあるだろうよ。
100兆文字使えるわけないだろ。
常識で考えろ池沼。

346:デフォルトの名無しさん
12/02/02 13:44:44.80
>>345
そんな頭の悪い発言で先生面するのはやめなさい

347:デフォルトの名無しさん
12/02/02 13:45:17.95
そしてフォルダ名からkeyにマルチバイト文字が混入し、バグに苦しむ低脳(>>340)であった

348:デフォルトの名無しさん
12/02/02 13:46:38.13
なにいってんだこいつ(AAry

349:デフォルトの名無しさん
12/02/02 13:47:18.71
趣味グラマだけどPerlが好きで、今更だけどラクダ本買って今読んでるんだけど
冒頭にラリーの言葉でPerlのコミュニティは素晴らしいって書いてあったんだよね。
それで穏やかな気持ちになってさ、2chのPerlスレはどうなんだろって覗いてみたんだがお前らカリカリしすぎワロタ

350:デフォルトの名無しさん
12/02/02 13:49:18.63
カリカリしてるのは煽りたいだけの糞以下ゴミクズ基地害1匹だけ、マジで消えろよ

351:デフォルトの名無しさん
12/02/02 13:52:23.42
>>350
自己紹介乙。
カリカリしてるって笑われてるぞw
こんな時間から書き込みしてるとか余程程度の低いニートなんだろうな。
お前生きてる価値あんの?w

352:デフォルトの名無しさん
12/02/02 13:52:51.43
>>350
俺にはキミが一番カリカリしてるように見える。
とりあえずもちつけ。

353:デフォルトの名無しさん
12/02/02 13:52:51.74
>>349
もうぶっちゃけるけど、Perlに限らずム板マ板にまともなプログラマはいないよ。
みんなブログやTwitterあるいはGithubで情報発信や交流している。
名無しさんにうずもれて満足して、ここにしか居場所がないようになると
それだけ新しいプログラミングの習得が遅れる。
このスレで書かれてるコードが10年前基準のレガシーなものだらけなの見ても分かるでしょう?

354:デフォルトの名無しさん
12/02/02 13:55:14.63
またレガシー厨か

355:デフォルトの名無しさん
12/02/02 13:56:55.33
そうだな、俺も基本的に情報交換はTwitterだわ。
2chは惰性でチェックしてる。

356:デフォルトの名無しさん
12/02/02 15:11:21.74
>>340
文字数制限は




















自分で調べろバーカ

357:デフォルトの名無しさん
12/02/02 15:14:20.58
>>356によってこのスレの存在意義は完全否定されました

今までPerl質問スレをご利用頂き、ありがとうございました

358:デフォルトの名無しさん
12/02/02 15:16:11.02
だから今こうやって調べてるんじゃないですか。

359:デフォルトの名無しさん
12/02/02 15:23:10.58
最近レスの流れが早いな

360:デフォルトの名無しさん
12/02/02 15:45:46.55
>>340
perlgutsでは、キーの長さはU32になってるから、
短くても32bitで表現できるバイト長は保障される(コンパイルされた環境に依存)だと思う。

use Config qw(config_vars);
print config_vars('u32size');

361:デフォルトの名無しさん
12/02/02 17:50:11.77
プログラマーって根暗で穏やかじゃない人が多いですね
このスレ見て思った

362:デフォルトの名無しさん
12/02/02 17:57:06.32
>>361
ここはいつからお前の感想掲示板になったんだ?
ブログにでも書いてろ真性基地害

363:デフォルトの名無しさん
12/02/02 17:59:41.62
おやおや威勢のいいお兄さんだ

364:デフォルトの名無しさん
12/02/02 18:09:31.55
>>361
で?
根が明るいだけしかとりえのないプログラムスキル皆無のゴミが何の用?

365:345
12/02/02 18:12:56.25
>>360
ほらな、だから100兆文字は無理だって言ったんだよ
考えればすぐ分かるだろ

366:デフォルトの名無しさん
12/02/02 18:14:29.13
>>362
じゃあここは何のスレなのかな?
質問しに来た人に対しちゃんと答えるスキルはあるけどあえて教えずネチネチいじめるスレなのかな?

367:デフォルトの名無しさん
12/02/02 18:14:51.41
>>361
自己紹介は自己紹介板でやれや板違い

368:デフォルトの名無しさん
12/02/02 18:20:02.08
自分は根暗でもなく穏やかだと思ってるイケヌマン(>>361)がいるときいて
韓国の首都上海からテポドンに乗って飛んできました!

369:デフォルトの名無しさん
12/02/02 18:22:15.52
>>361
下手な釣りでも大漁で良かったなw

370:デフォルトの名無しさん
12/02/02 18:32:51.50
どう見ても自演です
寂しいのかな

371:デフォルトの名無しさん
12/02/02 19:10:41.33
>>349
ここはPerlのコミュニティじゃなくて2chだから。

372:デフォルトの名無しさん
12/02/02 19:13:11.92
荒らすのだけが目的の奴がまぎれてるからなあ。
前はコテハンもどきを使っててあぼーんしやすかったんだけど
最近使わなくなったのか別の奴が流入してきたのか
紛らわしくていかん。

373:デフォルトの名無しさん
12/02/02 21:01:26.52
>>372=荒らすだけが目的の奴

374:デフォルトの名無しさん
12/02/02 21:11:44.51
どうせPHP厨かレガシー厨だろ。
PHP厨はPerlが存在する限り日の目を見ることはないからな。

375:デフォルトの名無しさん
12/02/02 21:19:30.42
キーについて質問してるヴァカがいるけどどうせ何一つ調べずに質問してるんだろうなキモい

376:デフォルトの名無しさん
12/02/02 21:49:34.23
>>361は自演だったのか
恥ずかしいなおいw

377:デフォルトの名無しさん
12/02/02 22:02:22.60
activeperlをwindowsで使っています

ms-dosの8.3形式の短いファイル名の一覧を取得する方法はありますか

378:デフォルトの名無しさん
12/02/02 22:07:37.89
全一覧取得→性器表現

379:デフォルトの名無しさん
12/02/02 22:26:48.32
>>377
Win32::GetShortPathName()
URLリンク(search.cpan.org)

380:379
12/02/02 22:29:16.51
補足。
URLリンク(support.microsoft.com)

381:デフォルトの名無しさん
12/02/02 22:55:05.58
>>377
採用されそうにないが

D:\hoge\fuga の一覧
my @filename_8_3 = grep {/\S+ +\S+ (\S+) +\S+/, $_ =$1} qx'dir /x D:\hoge\fuga';

382:デフォルトの名無しさん
12/02/02 23:08:23.66

ばっちり動きました

383:デフォルトの名無しさん
12/02/03 00:54:51.78
>>320
レンタルサーバーがDELLのノートPCでWinXPをインストールしてあるんですか?
ところでインストールしてあるPerlのバージョンはいくつですか?
ちなみに

perl -v

でバージョンを調べられますよ。


384:デフォルトの名無しさん
12/02/03 01:06:10.78
>>320
文章からしてそのレベルでは無理
お前はもっと低級な言語でもやって標準I/Oなんかを学習するべき

385:デフォルトの名無しさん
12/02/03 01:11:34.15
あと<STDIN>が使えない段階でPadreを使うのは早いですよ。
本質的でないところではまってしまい、前に進みません。
また分からないことがあったら遠慮なく聞いてください。

386:デフォルトの名無しさん
12/02/03 02:47:06.11
Padreはゴミ

Perlという言語ではゴミしか作れないだろうけど。

387:デフォルトの名無しさん
12/02/03 02:51:13.22
使い捨てに向いた言語って、結構な褒め言葉じゃね?

388:デフォルトの名無しさん
12/02/03 03:03:11.29
PHP厨様こんな夜中まで書き込みご苦労様です^^
Perlはゴミしか作れませんが、ゴミすら作れず時間が失われるだけのPHPよりはマシですね^^

389:デフォルトの名無しさん
12/02/03 03:06:54.70
ほら、嫉妬してる奴が釣れちゃっただろw

390:デフォルトの名無しさん
12/02/03 03:15:03.86
猫に小判
豚に真珠
PHP厨にPerl

391:デフォルトの名無しさん
12/02/03 03:23:47.79
効いてる効いてる

392:デフォルトの名無しさん
12/02/03 15:24:03.30
   ス   テ   マ   の   予   感

393:デフォルトの名無しさん
12/02/03 21:54:38.24
PHP厨にPerl

394:デフォルトの名無しさん
12/02/04 00:24:37.03
CAPTCHAの認証を破るモジュールとかないよね・・・
無理かな

395:デフォルトの名無しさん
12/02/04 00:28:30.15
ぼくの考えた最強の

PHPeruby

396:デフォルトの名無しさん
12/02/04 00:36:47.06
モジュールとして公開されてたら誰でも破れるだろボンクラ
誰でも破れるものをわざわざ手間かけて実装する低脳がどこにいるんだよパーかおめ

397:デフォルトの名無しさん
12/02/04 00:37:53.32
だよな
諦めるっきゃないか

398:デフォルトの名無しさん
12/02/04 00:45:12.94
モジュールですべてを行おうとするから出来ないんであって、
文字を判読して打ち込むところを人間にしてもらうように
作ればいんじゃね?ただし人間というのは当然、自分以外のっ
てことだけど。エッツな画像とかをえさにすれば、入力して
くれるひともいるでしょ。

399:デフォルトの名無しさん
12/02/04 00:45:28.75
お前が高脳で諦めずにそういうモジュールを完成させても
公開すれば間もなくみんなCAPTCHAやめて別の方法とると思うぞw

そこまで高い的中率を求めるのでなければ自作もできるんじゃない?
画像認識の話になるからそれ系の話を探せば出てくるかもな。

400:デフォルトの名無しさん
12/02/04 00:48:52.22
エロ画像ダウンロード画面でCAPTCHAと入力窓出して、入力されたら裏で認証するとか?
確かにそれだとバレないな。

401:デフォルトの名無しさん
12/02/04 01:07:55.48
Perl使いにはハードルの高いものだな

402:デフォルトの名無しさん
12/02/04 01:11:22.73
CAPTCHA認証は100%不可能。超むずい

403:デフォルトの名無しさん
12/02/04 01:13:37.43
作るほうはたくさんモジュールあるんだけどなw

404:デフォルトの名無しさん
12/02/04 01:16:32.05
JDownloader

405:デフォルトの名無しさん
12/02/04 08:15:03.85
Perlとは違うがCAPTCHA破りならPWNtchaとかあるにはある
URLリンク(caca.zoy.org)

ロシアや中国あたりでは人海戦術でCAPTCHAを破る専門の仕事があるらしいが……

406:デフォルトの名無しさん
12/02/04 10:41:21.75
>>399
>公開すれば間もなくみんなCAPTCHAやめて別の方法とると思うぞw
それはそのとおりだと思うけど、>>394の要件に含まれていないからいいよ。


407:デフォルトの名無しさん
12/02/04 10:48:29.60
 手動はメンドイな
本当なんつーものを開発してくれたんだよ

408:デフォルトの名無しさん
12/02/04 10:49:20.61
最近は犬と猫の色んな写真を8枚くらい表示して
犬の画像を全部選択しろとかもあるな
CAPTHAの次はこれが標準になるだろう

俺の予想ではその次は全部同じ生き物の写真になると思う
例えば全部人間で、商談してる写真やら野球してる写真やら絵を描いてる写真が10枚程表示されて
「スポーツをしてる画像を全部選べ」みたいな

さらにその次は馬鹿撃退用に知識を問う画像が表示されるだろうな
アンコールワットやマチュピチュなんかの写真が12枚程表示されて
「世界遺産を全部選べ」みたいな
画像からググるのはほぼ不可能に近いから一般常識のない馬鹿は撃退される

それを突破しようと思ったら人工知能レベルのモジュールが必要
今から作っとけ

409:デフォルトの名無しさん
12/02/04 10:49:27.86
たった100兆文字くらい、京なら余裕でしょ。
ちょっと昼休みに試してみるわ。

410:デフォルトの名無しさん
12/02/04 10:50:26.60
>>408
ぐあああ
不可能だ

411:デフォルトの名無しさん
12/02/04 10:51:09.72
日本語とかもあるし大変だろ

412:デフォルトの名無しさん
12/02/04 10:52:18.31
そこはほら、jperlだょ

413:デフォルトの名無しさん
12/02/04 10:56:38.26
>>398の方法がすでに>>408をすでに解決している件

414:デフォルトの名無しさん
12/02/04 10:58:06.65
s/すでに//

415:デフォルトの名無しさん
12/02/04 11:07:35.20
CAPTHAの件、
文字を扱えるのは人間だけだってことか
utf8フラグが文字を扱えるわけじゃないってことか。。。

416:デフォルトの名無しさん
12/02/04 11:27:22.19
>>415
何を言ってるのかさっぱりわからん。

データを見た時、データだけでそれが文字かどうかは人間しか分からないから
データとは別に、utf8フラグを明示的につけてやることで
コンピュータが文字と認識できるようになるってことだろ

417:デフォルトの名無しさん
12/02/04 11:37:30.63
>>415-416
どっちも意味わかんねーよ

418:デフォルトの名無しさん
12/02/04 11:43:31.42
今日は土曜日!二日市に行こうかな。
でもな、特に目ぼしいものナさそう。
ノートパソコン欲しい。mac book airよさそうと思ったけど、最低8万するんだね。
たかい。

419:デフォルトの名無しさん
12/02/04 11:47:43.01
>>417
ようするにファイルのことだよ。

ファイル中身を見ただけじゃ、それが文字ファイル
(テキストファイル)なのかバイナリファイルなのか分からない。
もちろん、入っているデータや拡張子から推測はできるが
100%正しい訳じゃない。

それは変数に入っている値も同じで、
コンピュータ(Perl)は中に入っているのが文字なのかバイナリなのか分からない

その二つを区別できなければ、”文字”数の情報が必要な処理や
1文字づつ処理するような関数が作れない。
よくあるのが、マルチバイト文字を渡したら、1文字の左半分だけ残って
右半分が落ちてデータが壊れるとかね。

だから、UTF8フラグというものが必要で、それをつけることでPerlは
文字として判断できるようになる。
まあ、これがモダンな(といっても何年も前から)のPerlの文字列の扱い方。

420:デフォルトの名無しさん
12/02/04 14:26:37.57
>>398
CAPCHA認証を行っている多くのサイトは、まさに今それをやってるんだよ。

Googleから判読不能な文面を受け取って、自身のCAPCHAシステムに組み込み、
入力の集積結果をGoogleに渡してお金を貰うという仕事だ。

421:デフォルトの名無しさん
12/02/04 14:42:49.67
CAPCHAは無理だろ
記号着地問題とかフレーム問題とかクリアせにゃ

超精度のOCRのようなモンができても、
文字じゃなくぬこ写真が出てくれば、それまでだ

画像を記号に変換するつよーいAIが登場しないと、
CAPCHA突破はムリムリだぁ

422:デフォルトの名無しさん
12/02/04 15:16:05.36
愛くるしいぬこ写真がこれ程凶悪な障壁になろうとは誰が予想しただろうか

423:デフォルトの名無しさん
12/02/04 16:01:40.04
ファイルテスト演算子の-dでディレクトリかどうかを判断すると
ディレクトリが多数あるのに「.」「..」しかヒットしないんですが、なにが原因ですか?

424:デフォルトの名無しさん
12/02/04 16:06:17.48
□判定前のファイルとフォルダ混在した一覧にはフォルダはあるのか
□対象ディレクトリのパスは間違っていないか(特に相対パスの場合)

425:デフォルトの名無しさん
12/02/04 16:17:13.41
どんな言語であろうとCAPCHAは無理なんだな
そりゃCAPCHAが大流行するわけだ

426:デフォルトの名無しさん
12/02/04 16:18:02.35
-d 使っているまさにそのコードで cwd してみそ

427:デフォルトの名無しさん
12/02/04 16:25:57.57
ぼくが考えた最強の

KATO-CHA

428:デフォルトの名無しさん
12/02/04 16:31:44.21
ちゃっとだけよ(はあと)

429:423
12/02/04 16:41:35.10
>>424
レスありがとうございます
・フォルダはあります。
・対象ディレクトリのパスは間違ってないです。コード中の
while (my $file = readdir $dh) {
 if (-d $file) {
  print $file;
 }
となってるところを
while (my $file = readdir $dh) {
 print $file;
にしてみたらちゃんと目的のディレクトリを含むファイルの羅列がprintされました。
なぜファイルテスト-dが成功しないんでしょうか?

430:423
12/02/04 16:44:42.38
>>426
レスありがとうございます。
use Cwd qw(getcwd);
$ret = getcwd();
print $ret;
したら、このコードが置いてあるディレクトリ名が表示されました。
ディレクトリハンドルに指定したディレクトリとは違います。

431:デフォルトの名無しさん
12/02/04 16:50:22.36
if (-d $file)



$filepath = "検索対象のディレクトリ/" . $file;
if (-d $filepath)

に変更するとか?

432:423
12/02/04 16:53:17.98
レスありがとうございます。
$fileに入ってるディレクトリ名はすでにフルパスなんです。
もしかしてWindowsだとファイルテストが機能しないとかあるんでしょうか?

433:デフォルトの名無しさん
12/02/04 16:54:46.49
utf8フラグは自分で立つわけじゃないから、CATCHAを破ってくれないってことでおk?

434:デフォルトの名無しさん
12/02/04 16:56:32.96
use utf8; 使ってる場合は、このスレの専門家が長文で丁寧に教えてくれる。
それまで待て。

435:423
12/02/04 16:56:47.06
>>431
すみません。読み込む直前でフルパスじゃありませんでした。勘違いしてました。
言われたとおり改めて変更してみたらうまくいきました。
ありがとうございました!

436:デフォルトの名無しさん
12/02/04 17:10:42.40
どういたしまして

437:デフォルトの名無しさん
12/02/04 22:12:09.11
>>420
エッチな画像見てそのうえGoogleから給料貰えるなんて最高じゃないか

438:デフォルトの名無しさん
12/02/05 06:26:00.76
ぐああああ
CAPCHA対策された
手でシコシコ面倒くさいな・・

439:デフォルトの名無しさん
12/02/05 09:33:17.78
迷惑スクリプト乙

440:デフォルトの名無しさん
12/02/05 12:39:58.42
URLリンク(codepad.org)

600851475143 の素因数のうち最大のものを求めよ。
という問題をエラトステネスの篩を使って解こうとしたんですが上手くいきません。

どこがいけないんでしょうか。

441:デフォルトの名無しさん
12/02/05 12:42:17.83
まずそのクソスクリプトの先頭に
use strict;
use warnings;
と書き込めアホ


442:デフォルトの名無しさん
12/02/05 12:45:21.05
書きました

URLリンク(codepad.org)

443:デフォルトの名無しさん
12/02/05 12:56:51.44
お次はそのゴミカスみたいな変数をmyで宣言しろ
my $n = Math::BigInt->new("2");
こういう風にやれ

444:デフォルトの名無しさん
12/02/05 12:58:37.39
URLリンク(codepad.org)

エラーを直すように書き換えました

445:デフォルトの名無しさん
12/02/05 13:02:49.98
反応はええんだよクズ
俺の都合も考えろ

446:デフォルトの名無しさん
12/02/05 13:19:42.79
……俺の勘違いでなきゃ、相手の鯖に
775145**3≒465.7ペタ個もの配列を要求するんじゃね?これ……

447:デフォルトの名無しさん
12/02/05 13:29:34.23
ああいやいいのか、すまん

448:デフォルトの名無しさん
12/02/05 13:35:46.70
>>447
許す

449:デフォルトの名無しさん
12/02/05 14:33:26.17
……とりあえず最大限意向を尊重するとこんなコードになるのか?
ただしこれでもTimeOutになりかねない(71を見つけるまでが長い)

use strict;
use warnings;
use bigint;

my $target = Math::BigInt->new("600851475143");
my $target_backup = $target;
my $max = int(sqrt $target);

my @era = ("0") x $max;
my $n = 2;
my @q = (); #素因数

for($n; $n <= $max; $n++){
next if $era[$n]; #素数ではなかった
for($b = $n; $b * $n < $max; $b++){
next if $era[$b]; #素数ではなかった
$era[$n * $b] = 1; #篩をあてる
}
if($target % $n != 0){ #素因数ではなかった
next;
}else{ #素因数を見つけた
$target /= $n;
push @q, $n;
$max = sqrt($target); #これくらいやっとかないと重くてかなわん
redo;
}
}
push @q, $target;
print join '', "\n$target_backup = ", (join ' * ', @q), "\n";

450:デフォルトの名無しさん
12/02/05 14:53:59.82
>>444
ウンコ垂れ流しをuseなんとかとmyで止めることがノービス脱却だ
あとは行数とかの巨大なウンコをせき止めれば中級者へのクソ長い道が開ける
変数は3つ程度にしとけ

URLリンク(codepad.org)


451:デフォルトの名無しさん
12/02/05 14:56:15.34
print`factor 600851475143`=~/\d+$/g

452:423
12/02/05 16:13:57.80
口は悪いがここのやつらはやたら親切だな

453:デフォルトの名無しさん
12/02/05 16:39:20.70
>>452
ろくにスキルもないのに先生ぶりたい連中なんだよ
お察しください

454:デフォルトの名無しさん
12/02/05 17:38:51.00
>>452
やつらじゃなくて、一人だけね、そういう変なのが今常駐してるのは。

455:デフォルトの名無しさん
12/02/05 17:45:05.62
きったねぇ糞コードだなおい

456:デフォルトの名無しさん
12/02/05 18:17:49.66
篩を作るのをサボったら1秒くらいで答えが出た。
URLリンク(codepad.org)

457:456
12/02/05 18:28:48.16
なんかいろんな数値でやったら変な結果がいっぱい出たw
バグ取りせずに逃げよう...

458:デフォルトの名無しさん
12/02/05 19:18:38.32
my $max = 600851475143;
my @n = (2..int(sqrt($max)));
my @p;

do {
  push @p, shift @n;
  @n = grep {$_ % $p[-1] != 0} @n;
} while ($p[-1] ** 2 < $n[-1]);

push @p, @n;

foreach (reverse(@p)) {
  if ($max % $_ == 0) {
    print;
    last;
  }
}


459:デフォルトの名無しさん
12/02/05 20:18:50.31
結構重かった。
URLリンク(codepad.org)

460:デフォルトの名無しさん
12/02/05 20:19:19.15
my $max = 600851475143;
my @n = (2..int(sqrt($max)));

while ($n[0] ** 2 < $n[-1]) {
  # あったほうがちょっとは早い?
  #if ($max % $n[0] == 0) {
  # @n = grep {$_ < $n[-1] / sqrt($n[0])} @n;
  #}

  @n = grep {$_ % $n[0] != 0} @n;
}

printf "%d\n", (grep {$max % $_ == 0} @n)[-1];


461:デフォルトの名無しさん
12/02/05 22:26:39.88
パールってスレッド作れないの?
一つのコードのファイルでマルチスレッドできないの?

462:デフォルトの名無しさん
12/02/05 22:40:59.65
スレッドは作れるが、ライブラリがスレッドセーフとは限らない。

野良ライブラリが多く、その野良ライブラリに
スレッドセーフかどうか書いてあることは稀で
次第に嫌になってくるであろう

463:デフォルトの名無しさん
12/02/05 22:46:19.83
このスレで我慢しろ

464:デフォルトの名無しさん
12/02/06 06:45:58.34
>>454
自己紹介乙

465:デフォルトの名無しさん
12/02/06 08:48:27.47
PHP最強

466:デフォルトの名無しさん
12/02/06 12:37:51.41
○○○最強≠○○○だけ覚えれば十分、他は記憶領域の無駄だから一切覚えるな

467:デフォルトの名無しさん
12/02/06 14:22:39.79
もしプログラム言語を1つしか覚えられないとしたらPHPしかないじゃん
これには異論ないと思う
というか異常者以外は分かるはず
実際はいくつも覚えられるからPHPを中心に他の言語もかじってみるけど
他の言語は全部ゴミみたいなものだから結局PHPがいかに優れているかを再確認するだけになるんだよね

468:デフォルトの名無しさん
12/02/06 14:25:41.09
PerlもPHPもジャングル言語だ

469:デフォルトの名無しさん
12/02/06 14:30:50.79
【ジャングル】
弱肉強食
密林
錯綜、複雑
物騒な場所
非情な生存競争の場
浮浪者の集まる所

470:デフォルトの名無しさん
12/02/06 16:03:15.04
my $buf = 'aaaaaaaaaaaaaaaaaaaaaaaaaaaaa';
test($buf);

sub test{
#1
#my $hoge = shift;
#return length($hoge)/2;

#2
#return $_[0]/2;
}

引数渡すときに、コピーが作られるのは代入したタイミングですか?
#2の場合は$bufの中身分のメモリは確保されないということでいいんでしょうか?

471:デフォルトの名無しさん
12/02/06 16:04:23.86
#2
#return length($_[0])/2;
でした。
この辺はどうでもいいですが。

472:デフォルトの名無しさん
12/02/06 18:37:30.70
お前の存在もどうでもいい

473:デフォルトの名無しさん
12/02/06 22:32:18.10
perlでwhileの二重ループがうまくいかないのですが何が原因でしょうか?
うろ覚えですがおよそ下記のようなものです。

while($a=<IN1>){
 seek(IN2, 0, 0)
 while($b=<IN2>) {
  if($a=~$b) {
   出力する
  }
 }
}

$aの一行目はちゃんと期待どおりに$bが出力されるんですが
$aの二行目から$bが出てこないんです。
ファイルポインタの位置を戻さないとダメかと思ってseek入れたんですがダメでした。
ファイルには両方にそれぞれ対応する文字列が入ってます。

474:デフォルトの名無しさん
12/02/06 22:36:33.86
馬鹿には無理

475:デフォルトの名無しさん
12/02/06 22:42:57.79
>>474
自己紹介乙www

476:デフォルトの名無しさん
12/02/06 22:49:11.85
seekよりもopenのほうが分かりやすいでしょ。
それよりもI/Oを最低限の回数にするために、
my @a = <IN1>;
my @b = <IN2>;
以下、宿題。
のほうがいいと思うけどね。

477:デフォルトの名無しさん
12/02/06 23:14:21.76
>>470
URLリンク(perldoc.jp)
> 配列 @_ は local 配列ですが、その要素は実際の スカラパラメータの別名です。

Devel::Peekで確認しれ。

478:デフォルトの名無しさん
12/02/06 23:41:53.95
「PHP 5.3.9」に危険度の高い脆弱性、最新版へのアップデートを (Impress Watch) - Yahoo!ニュース
URLリンク(vv1.jp)

さすがPHPさんやで・・・

479:デフォルトの名無しさん
12/02/06 23:55:39.20
>脆弱性を悪用された場合、遠隔の第三者によって任意のコードを実行される危険性がある。

任意のコードを実行されるんだってよwww
PHPかっけー!www

480:デフォルトの名無しさん
12/02/07 00:46:28.73
>>478-479
こちらへどうぞ。

Perl VS PHP
スレリンク(php板)

481:デフォルトの名無しさん
12/02/07 23:15:39.41
>>476
それで読み込んだ場合要素には各行が入ったんですが基本的に行毎に入ると思っていいでしょうか?
処理系によっては空白区切りの単語毎とかいうことはあるでしょうか?

482:デフォルトの名無しさん
12/02/07 23:19:25.10
$/ の値次第
perlvar嫁

483:デフォルトの名無しさん
12/02/08 01:32:28.78
$num = 3;
open(DATA, ">:encoding(cp932)", "./test$num.txt") || die "ファイルが開けません: $!";
これを実行しtext.txtが開けなかった場合、
「ファイルが開けません: ページ No such file or directory at test.pl line 10.」
と表示されますが、この時にファイル名を表示することは出来ないでしょうか?

今はこの様にしているのですが、毎回こうするのは不恰好で、
もしファイルが開けなかった場合にどのファイルにアクセスしようとしたのか分からないものかと思いました。
$num = 3;
$filename = "./test$num.txt";
open(DATA, ">:encoding(cp932)", $filename) || die "ファイルが開けません: $filename\n$!";

484:デフォルトの名無しさん
12/02/08 02:22:10.81
>>483
"ファイル"を表示したい変数に置き換えれば?

485:デフォルトの名無しさん
12/02/08 04:34:20.56
お手軽な感じのサブルーチンか、ユーティリティクラスでも作ればいいんじゃないか。

486:デフォルトの名無しさん
12/02/08 05:46:47.65
うるさいゴミ

487:デフォルトの名無しさん
12/02/08 07:39:37.13
>>483
べつにそのままで構わないと思う。


488:デフォルトの名無しさん
12/02/08 08:18:23.62
377です

さらに、フルパスを8.3形式で取得する必要が生じました
getcwdでカレントを取得して、各階層をGetShortPathNameしていく、
という方法は思い付いたのですが、もっと一発で済むような方法はありませんか

489:デフォルトの名無しさん
12/02/08 08:41:16.59
あ、なんかフルパスをGetShortPathNameするだけでいけそうでした

490:デフォルトの名無しさん
12/02/08 19:24:10.86
ラクダ本3版 88ページ リストを取り扱っている段なのですが

# 「逆コンマ演算子」
return (pop(@foo) ,pop(@foo))[0];

とあります。この記述がどういう作用を持つのかは分かるのですが(配列から後ろ2つの要素を削除し、末尾だったものを返す)
コメントの意味が解せません:逆コンマ演算子とはどういう意味なのでしょうか?

491:デフォルトの名無しさん
12/02/08 19:35:00.61
分かりました。コンマ演算子で項を繋げていった場合、スカラーリテラルで評価されるとリスト末尾の要素が返る。
それに対して>>490はリスト先頭の要素が返る。コンマ演算子とは逆の作用と捉えることが出来る。
なので>>490の記述全体の事を逆コンマ演算子と呼んだということですね。

492:デフォルトの名無しさん
12/02/08 21:41:56.60
うむ。そういうことだ。

493:デフォルトの名無しさん
12/02/09 22:41:48.75
Perl on Heroku | Hacker News
URLリンク(news.ycombinator.com)

judofyr/perloku - GitHub
URLリンク(github.com)

494:デフォルトの名無しさん
12/02/10 01:41:12.46
ファイルを1行ずつ読んで処理してます。ループ内でさらに1行だけ先読みしたい場合はどうすればいいですか?

while (<>) {
my $line = $_;
...
if ($line =~ /xxx/) {
#ここでさらに次の行を読んで一緒に処理したい
}
}
よろしくお願いします


495:デフォルトの名無しさん
12/02/10 01:45:26.12
一行先読みじゃなくて一行遅延すりゃあいいだろ
お前はアホか

496:デフォルトの名無しさん
12/02/10 03:31:52.51
すんまへん。一行遅延ですか。
自分は結局配列に入れました。


497:デフォルトの名無しさん
12/02/10 04:01:15.08
配列でいいとおもう
それで問題が発生したら別の方法がないか
質問すればいい

498:デフォルトの名無しさん
12/02/10 05:20:20.81
>>494
URLリンク(perldoc.jp)

> perl -e "print join qq/\n/, qw(abc def ghi jkl mno pqr stu vwx yz)" > foo.txt
> perl following.script foo.txt

#!/usr/bin/perl -w
use strict;
while (<>) { chomp;
  print "$.:", my $line = $_;
  if ($line =~ /[ekw]/) {
    # Win の場合は <> と chomp で削られる byte size が 2
    my $lf = chomp(my $next_line = <>) ? 2 : 0;
    print " (next: $next_line)";
    # $next_line を本当に「先読み」扱いにしたいのなら
    seek ARGV, - length($next_line) - $lf, 1;
    --$.;
  }
  print "\n";
}

use Tie::File; # URLリンク(perldoc.perl.org)
tie my @line, 'Tie::File', './foo.txt' or die $!;
for my $i (0..$#line) {
  print $line[$i] = ($i + 1) . ":$line[$i]"; # 実際にファイルへ行番号を追記
  if ($line[$i] =~ /[ekw]/) {
    print " (next: $line[$i + 1])";
  }
  print "\n";
}
untie @line;

499:デフォルトの名無しさん
12/02/10 05:44:10.05
file1, file10, file2
という感じの文字列があって、
これを数値順にソートするにはどうすればいいですか
要は、エクスプローラのファイル名の並びです

500:デフォルトの名無しさん
12/02/10 06:12:31.75
>>499
Sort::Key::Natural とか Sort::Naturally とかを使うのが簡単。

手で作っても大したことないけど。

なんか Python スレにも同じ質問があがってたね。


501:デフォルトの名無しさん
12/02/10 07:30:18.34
>>499
URLリンク(perldoc.jp)

502:デフォルトの名無しさん
12/02/10 07:39:01.77
>>500
両方使ってみましたが、思ったものと違うようです
数字の前の文字列が共通の要素同士ではちゃんと数字順に並んでいるのですが、
文字列部分での順序がランダムに見えます
ランダムという訳ではなくて何か規則はあるのだろうけど、多分賢すぎです
日本語を扱わせていることに原因があるのかもしれません

>>501
見るべき場所が判りません

503:デフォルトの名無しさん
12/02/10 08:47:25.63
例えば、natkeysortでは
え00 う01 い02 あ03 a03 b02 c01 d00
こんな感じの並びになります

504:デフォルトの名無しさん
12/02/10 09:29:16.03
>>503
日本語いれるなよ。しきいがたかくなるやん

505:デフォルトの名無しさん
12/02/10 09:29:43.29
use Encode;
とか…心細い

506:デフォルトの名無しさん
12/02/10 09:29:57.25
>>504
decodeすればまだなんとか

507:デフォルトの名無しさん
12/02/10 09:31:12.32
>>502

ああ、NaturalSort が内部で use locale しているので、
日本語がおかしなことになってるようですね。

数字部分がそれっぽく並ぶだけでいいのなら、
とりあえず、こんなのでいいのでは。

sub makekey($) {
    my $s = shift;
    $s =~ s/\d+/sprintf '%09d', $&/ge;
    lc $s;
}
sub naturalsort(@) {
    return map {$_->[0]} sort {$a->[1] cmp $b->[1]} map {[$_,makekey($_)]} @_;
}


508:デフォルトの名無しさん
12/02/10 10:11:20.37
>>502

ちょっと見てみたけど、内部で use locale しているのは
Sort::Naturally だけだった。

Sort::Key::Natural のほうは日本語でもそのまま動くみたい。

Sort::Naturally を use せずに Sort::Key::Natural だけで
試してみてはどうでしょうか。



509:デフォルトの名無しさん
12/02/10 10:18:24.74
use Sort::Key::Natural;
@a = ('a03', 'b02', 'c01', 'd00', 'あ03', 'い02', 'う01', 'え00');
@b = natsort @a;
print "@b";

の結果が>>503になるようです

510:デフォルトの名無しさん
12/02/10 10:21:56.27
use strict; # >>499 >>503
my @file_list = ('file1', 'file10', 'file2', 'e00', 'u01', 'i02', 'a03', 'b02', 'c01', 'd00');
my $i = 0;
my $longfilename_size = 255;
my @temporary_list = ();
my ($file_name, $k, $m, $used_as_number);
for $file_name (@file_list) {
  $m = $longfilename_size;
  $k = index($file_name, '0'); if($k >= 0) { if($k < $m) { $m = $k; } }
  $k = index($file_name, '1'); if($k >= 0) { if($k < $m) { $m = $k; } }
  $k = index($file_name, '2'); if($k >= 0) { if($k < $m) { $m = $k; } }
  $k = index($file_name, '3'); if($k >= 0) { if($k < $m) { $m = $k; } }
  $k = index($file_name, '4'); if($k >= 0) { if($k < $m) { $m = $k; } }
  $k = index($file_name, '5'); if($k >= 0) { if($k < $m) { $m = $k; } }
  $k = index($file_name, '6'); if($k >= 0) { if($k < $m) { $m = $k; } }
  $k = index($file_name, '7'); if($k >= 0) { if($k < $m) { $m = $k; } }
  $k = index($file_name, '8'); if($k >= 0) { if($k < $m) { $m = $k; } }
  $k = index($file_name, '9'); if($k >= 0) { if($k < $m) { $m = $k; } }
  if($m == $longfilename_size) { # no number
    $temporary_list[$i++] = join '', '<', $file_name;
  } else {
    $used_as_number = substr($file_name, $m);
    $temporary_list[$i++] = join '', substr($file_name, 0, $m), sprintf('%03d', $used_as_number), '<', $file_name;
  }
}

for $file_name (sort @temporary_list) {
  $k = index($file_name, '<');
  print substr($file_name, ++$k), "\n";
}

511:デフォルトの名無しさん
12/02/10 10:31:20.49
おおー
解読できてませんが、ちゃんと動いているようです

sort {$array[$a] cmp $array[$b]} (0 .. $#array)
みたいな使い方がしたいので、sortから呼び出す関数の形になってると有り難いです

512:デフォルトの名無しさん
12/02/10 10:40:49.93
>>509
ちゃんと use utf8 すれば動くよ。


513:デフォルトの名無しさん
12/02/10 11:32:07.44
そう思って、encode('utf-8', ) とかはやったんだけど、
その場合の結果は>>503と同じで
use utf8 とは挙動が異なるようです
use utf8はちょっと避けたい理由があるので、
なんとかuse Encodeの範囲内で解決できませんか

514:デフォルトの名無しさん
12/02/10 11:35:41.16
>>502
> 見るべき場所が判りません
「(なにか)」が今回はファイル名の数字部分で、そのまま解き方の解説なんだけど。

my @file_list = qw( い2 file1 い00 file10 あ10 file02 い02 あ5 い1 file2 5 007 1 a1b10 a1b01 a1b1 );
@file_list = (map("$_.b", @file_list), map("$_.a", @file_list));

print(
  map "$_->[0]\n",
  sort { $a->[1] cmp $b->[1] || $a->[2] <=> $b->[2] || $a->[3] cmp $b->[3] }
  map [ $_, /^(.*?)([0-9]+)(\..+)\z/ ],
  @file_list
);

515:デフォルトの名無しさん
12/02/10 14:21:17.78
>>494
# 単純にもう1行追加したい
while(defined (my $line = <>)){
...
if ($line =~ /xxx/){
# 単純に1行追加
my $new_line = <>;
...
}
}

# 追加行に通常処理も加えたいような場合
my $state = 'start';
while(defined(my $line = <>)){
if ($state eq 'xxx'){
# 1行追加処理(後で通常処理も加える)
...
$state = 'start';
# fall thru.
}
if ($state eq 'start'){
...
$state = 'xxx' if ($line =~ /xxx/);
next;
}
}

516:デフォルトの名無しさん
12/02/10 14:34:29.39
>>513

そもそも、もとの文字列が utf-8 じゃないのでは?
もし上の例で cp932 が生ではいっているのなら、

@tmp = map {decode('cp932',$_)} @a;
@b = map {encode('cp932',$_) } natsort @tmp;

でいけるはず。


517:デフォルトの名無しさん
12/02/10 18:07:17.86
use utf8して、スクリプト中に埋め込んだ文字列をソートするとうまくいくけど、
外部からsjisのファイルを読み込んでutf8に変換してソートしようとしても、
どうもうまくいきません

518:デフォルトの名無しさん
12/02/10 18:21:37.79
>>517
お前のコードがゴミなんだろ
ここで自分のコードはゴミですアピールして楽しい?
まじ池沼だな

519:デフォルトの名無しさん
12/02/10 18:33:30.61
>>517
ちゃんと、decode('shiftjis', $_) でインポートしてソートしてる?

>>518
更年期障害ですか、あんた

520:デフォルトの名無しさん
12/02/10 18:40:07.15
>>517
ここはPerlの質問スレであってお前の糞コードのどこが悪いかを質問スレじゃねぇんだよ

521:デフォルトの名無しさん
12/02/10 18:44:56.39
自前でエンコードするのは諦めて、
>>4のテンプレを全面採用すると、あっさり動きました

うーむ、従うしかないのか、、、
その方がソースも遥かに綺麗ではあるんだけど、、、

sub s2u {
my $str = shift;
return encode('utf-8', decode('cp932', $str));
}
↑こんなのを書いて渡しても、挙動がおかしい
これの逆パターンの関数を書いて、uff-8ソースに埋め込みの文字列を表示させようとしても
化けたり、Wide character云々とか言われる

これでうまく行くケースも結構あるんだけど、utf-8にもいろいろあるみたいで、
その違いが乗り越えられない

522:デフォルトの名無しさん
12/02/10 19:04:07.43
>>520
うるさいゴミ

523:デフォルトの名無しさん
12/02/10 19:11:36.80
自分でも叩けそうなレベルの話題になると急に元気になるのなw

524:デフォルトの名無しさん
12/02/10 19:21:08.17
>>521
open (my $FH, '<', "./test.sjis");
  my @test;
  while (<$FH>) {
    chomp;
    push @test, decode('shiftjis', $_);
  }
close $FH;

for my $v (@test) {
  print encode_utf8($v). "\n";
}

これで警告なくうまく出力されるけど?

525:デフォルトの名無しさん
12/02/10 19:21:33.05
>>511
sort {($a0 = $a) =~ s/(\d+)/1000 + $1/ge, ($b0 = $b) =~ s/(\d+)/1000 + $1/ge, $a0 cmp $b0} @file_list;

関数の形
sort renamed @file_list;
sub renamed {
    (my $a0 = $a) =~ s/(\d+)/1000 + $1/ge;
    (my $b0 = $b) =~ s/(\d+)/1000 + $1/ge;
    $a0 cmp $b0;
}

526:デフォルトの名無しさん
12/02/10 19:27:00.22
>>524
今こっちでも同じ答えを見つけたのにー

encodeしちゃいけなかったのね
decodeして中間コードみたいな状態で渡して、
受け取ったらdecodeせずにencodeだけすればいいのか
なんか気持ち悪いけど

>>525
おお、シンプル
試してみます

527:デフォルトの名無しさん
12/02/10 19:31:11.70
>>526
encodeとdecodeを根本で勘違いしてる。

decodeは、外部から文字列をPerlスクリプト内へインポートするための関数。
外部から取り入れた文字列はバイナリ認識だからPerlで文字列として扱えるようにする。

encodeは、Perlスクリプト内から外部へ文字列をエクスポートする関数
Perl内で文字列は特殊な方法で管理されてるから、その管理を外して外部でも使えるようにする。

インポートして、処理して、エクスポートする。

528:デフォルトの名無しさん
12/02/10 19:56:00.26
まあ、そうなんだけどね
何で今まで困らなかったんだろう

そもそも、'utf8'という指定がencodeやdecodeで使えるのはどういうことなんだ

529:デフォルトの名無しさん
12/02/10 21:08:52.36
>>528
decode,encodeは「他のコード⇔UTF-8」じゃなくて「他のコード⇔Perl内部コード」だよ
「utf8フラグ」ってのはいい加減誤解の元だよね

530:デフォルトの名無しさん
12/02/10 21:42:14.63
見事に馬鹿しかいない

531:デフォルトの名無しさん
12/02/10 21:57:24.00
>>530
学校でろくな先生に出会わなかったんだろうな…

532:デフォルトの名無しさん
12/02/10 21:58:28.66
だからUTF8フラグが混乱の元。
Perl文字列フラグだったらよかった。

533:デフォルトの名無しさん
12/02/10 23:58:48.17
名前変えても挙動は一緒だろ、何が問題なのか全然分かってないなw

534:デフォルトの名無しさん
12/02/11 00:10:03.08
danが問題なんじゃなかったのか?違ったか?失礼。

535:デフォルトの名無しさん
12/02/11 00:26:15.06
大規模な文字集合になると、文字なのか文字でないのかの境界が
単純に0/1で分けられないからなぁ
そういうのは今のところUTF8フラグでは扱えない
それに文字か文字でないのかは多分に気分的なものがあるので、
そうなると本質的に機械では扱えない

536:デフォルトの名無しさん
12/02/11 00:46:48.41
>>535
お前馬鹿だろ?
頓珍漢なこと言ってるぞ。

537:デフォルトの名無しさん
12/02/11 08:36:37.59
      , -‐‐‐‐‐- 、
     /r。-、r。-、ヽ
    _.j .l_,...、_l l_,...、_l r‐、
   l l‐r‐‐r―r―(,)‐ァ_.ノ
   、ゝ  ̄    ̄  ノ. ノ <いきなり尻見せ
   ゝ、`‐―‐‐_',イ ヽ
      ( ̄て""´  ヽ \
      \   .)    、 ~ヽ
        ヽ_人      l ,l
         /    __/_ノ
         l   -‐ ̄ ヽ
         \   ヽ

538:デフォルトの名無しさん
12/02/11 11:25:25.34
内部コードを隠してしまいたいのか、
世界全部が内部コードと同じになって欲しいのか、
方向がはっきりしない

539:デフォルトの名無しさん
12/02/11 12:34:05.24
世界全部が内部コードと同じになることはありえない。

答えは出てる。

540:デフォルトの名無しさん
12/02/11 12:41:38.24
今でも普通にsjisのデータが増え続けてるし、過去のデータはきっと永久にsjisだし

541:デフォルトの名無しさん
12/02/11 13:18:58.45
だけど、いちいちプログラマがこのファイルの文字コードは何だろう?と
考え続けていたら、大変なことになる。

だからせめてプログラム言語の中では統一しよう。
そうやってできたのがPerl標準のEncodeモジュール。

542:デフォルトの名無しさん
12/02/11 14:30:53.29
漢字に代表される大規模な文字集合の場合、一文字一文字が
英語でいうところの単語の性質を帯びてくる。

ここで、任意の英字の並びに対して、単語であれば1、単語
でなければ0、という「単語フラグ」というものを導入する
ことを考えてみる。

Perlで単語を処理する場合は必ず単語フラグを1にしなければ
ならない。

その試みは果たして成功するだろうか?



543:デフォルトの名無しさん
12/02/11 16:45:06.22
単語か単語ではないかを考えるのは無価値なので、考えない
ことにして、英字の並びをそのまま扱うようにするのがいい。

(ここまでの答えを自分で出せたひとだけ次に進みます。)

544:デフォルトの名無しさん
12/02/11 18:02:26.05
結論

単語フラグは意味が無いのだから
世の中のフラグはすべて意味が無いものなのです。

545:デフォルトの名無しさん
12/02/11 18:02:49.38
>>544
それは詭弁だ。

546:デフォルトの名無しさん
12/02/11 19:14:26.21
>>544
お前変な新興宗教入ってるだろ

547:デフォルトの名無しさん
12/02/11 19:44:45.99
少数の人だけしか理解できない呪文の不可解な連なりであり、
ヤギの血を含み、あなたの魂を永遠に堕落させる。
上司があなたに金曜夜21時に緊急の仕事を命ずるときにしばしば使われる。

548:デフォルトの名無しさん
12/02/11 20:02:03.11
時間を分単位とかで切り上げしたいのですが
どうやったらいいのでしょうか


549:デフォルトの名無しさん
12/02/11 20:03:35.82
小学生のさんすうレヴェルだろ
プログラミング以前の問題だ

550:デフォルトの名無しさん
12/02/11 20:12:32.51
20:11:15 を 20:12:00 に切り上げたいのか?
まさか、お前。。。釣りじゃないよな?

551:デフォルトの名無しさん
12/02/11 20:15:23.95
>>544
君は、utf8フラグまで戻って出直してください。

552:デフォルトの名無しさん
12/02/11 21:24:59.13
>>548
失せろゴミ
ここはPerlの質問スレであって
幼稚園児並の知能しかない低能に手取り足取り教える場所じゃねぇんだよ

553:デフォルトの名無しさん
12/02/11 21:31:39.83


554:デフォルトの名無しさん
12/02/11 21:37:48.24
>分単位とか
「とか」って言ってる辺りで察してやれよ、頭が遅れてるんだろ。

555:デフォルトの名無しさん
12/02/11 21:40:18.52
>>548
my $time = time;
$time = $time - ($time % 60) + 60;

お前ら、更年期障害ですか。

556:デフォルトの名無しさん
12/02/11 21:43:40.50
>>548=ゴミクズ

557:デフォルトの名無しさん
12/02/11 21:44:48.79
>>555
更年期障害はオマエだよ
その時間とやらの書式なにも考えてねーだrks

558:デフォルトの名無しさん
12/02/11 21:47:50.11
>>557
秒数から加工する知恵がでないお前が頭悪いだろ。

559:デフォルトの名無しさん
12/02/11 21:53:48.33
>>558
どこにも秒数なんて書いてねーだろ
お前には別世界でも見えてんのかアホ


560:デフォルトの名無しさん
12/02/11 21:55:28.93
>>559
お前プログラムした事あるの?
あそこから希望の書式に加工できないの?
答えれないのなら質問以外でレスするなクズ

561:デフォルトの名無しさん
12/02/11 21:56:54.21
>>555
元々00秒の値でやってみなw

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


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

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

>>562
お前は黙ってろ

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

565:デフォルトの名無しさん
12/02/11 22:08:06.12
>>564
何言ってんだ?

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

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

567:デフォルトの名無しさん
12/02/11 22:11:36.37
>>563
> my $s = (time % 60);

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


568:デフォルトの名無しさん
12/02/11 22:12:57.50
>>566
う~ん?
ちょっと言ってる意味が分からない

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

569:デフォルトの名無しさん
12/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:デフォルトの名無しさん
12/02/11 22:20:32.13
$day が抜けてたwごめんね

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

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

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

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

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

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


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

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

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

577:デフォルトの名無しさん
12/02/11 22:35:27.72
だいたい、そんなこといってる間に1秒たつだろw

578:デフォルトの名無しさん
12/02/11 22:37:11.91
>>575
はいはい、低レベル低レベル。

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

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

579:デフォルトの名無しさん
12/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:デフォルトの名無しさん
12/02/11 22:45:41.47
440 : 名無しさん@お腹いっぱい。 : 2011/07/04(月) 00:00:00.00 ID:lVHU+IzZ0

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


581:デフォルトの名無しさん
12/02/11 22:47:03.44
>>579
うん?

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

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

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

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

585:デフォルトの名無しさん
12/02/11 22:51:55.43
学校のパールはPerl4かもしれないしね

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

587:デフォルトの名無しさん
12/02/11 22:55:09.67
>>585
そんなバカなw
そんな学校辞めてOKだろw

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

588:デフォルトの名無しさん
12/02/11 22:57:00.34
そこは 強いられているんだ!!! だろ

589:デフォルトの名無しさん
12/02/11 22:59:43.60
>>588

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

590:デフォルトの名無しさん
12/02/11 23:00:01.84
しいたけたいらげている?

591:デフォルトの名無しさん
12/02/11 23:01:39.30
そもそも元の質問がPerl特有のものじゃなかったしな

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

593:デフォルトの名無しさん
12/02/11 23:04:04.92
バカガキ>>548に踊らされるアホ住人

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

595:デフォルトの名無しさん
12/02/11 23:04:46.67
バッカでぇーーッす!!!

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

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

599:デフォルトの名無しさん
12/02/12 01:22:04.97
中間の変数を使わない方法は

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

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

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

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

604:デフォルトの名無しさん
12/02/12 02:51:07.37
お前KENTさんを侮辱するのか?

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

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

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

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

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

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

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


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

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

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

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

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

use CGI;とか今でも使う?

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

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

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

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

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

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

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

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

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

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

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


618:デフォルトの名無しさん
12/02/12 15:26:25.77
>>617
なんでそう思ったの?

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

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

620:デフォルトの名無しさん
12/02/12 15:46:39.08
>>619
抽象すぎて説得力がない。

621:デフォルトの名無しさん
12/02/12 15:57:58.27
>>613
サンクス!

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

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

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

623:デフォルトの名無しさん
12/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:デフォルトの名無しさん
12/02/12 18:34:31.22
Bareword

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

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

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

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

626:デフォルトの名無しさん
12/02/12 18:43:59.84
リファレンスも知らないバカ

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

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

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

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


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

632:デフォルトの名無しさん
12/02/12 18:56:17.49
現に居てるじゃねーか

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

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

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

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

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

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

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

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

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

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

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

642:デフォルトの名無しさん
12/02/12 19:09:46.47
間違えた、>>641>>633宛。

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

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

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

644:デフォルトの名無しさん
12/02/12 19:10:44.26
>>638>>639
なに必死になってんの…

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

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

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

647:623
12/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:デフォルトの名無しさん
12/02/12 19:15:29.32
>>646
STDOUTへの出力じゃないことを強調したかったんで…

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

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

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

URLリンク(perl-users.jp)

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

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

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

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

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

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

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

659:デフォルトの名無しさん
12/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:デフォルトの名無しさん
12/02/12 20:53:15.49
>>659
素晴らしい
こういうモダン風への書き換えは参考になります

661:デフォルトの名無しさん
12/02/12 21:04:04.60
やっぱりモダンのほうが見やすいね。

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


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

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

665:デフォルトの名無しさん
12/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:デフォルトの名無しさん
12/02/12 21:33:54.29
>>662
>うまくいきません

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

667:デフォルトの名無しさん
12/02/12 21:35:52.29
>>662=ゴキブリ並の知能。

668:デフォルトの名無しさん
12/02/12 21:37:54.22
>>665
ゴミ?

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

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

671:662
12/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:デフォルトの名無しさん
12/02/12 21:54:15.92
>>671
sub宣言時の括弧はいらない >>663

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

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

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

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


677:662
12/02/12 21:59:47.59
サブルーチンの呼び出しには()


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

679:デフォルトの名無しさん
12/02/12 22:01:52.99
>>662は荒らしだろ。
スルーしろ。

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

とか使えば?

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

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

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

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

685:デフォルトの名無しさん
12/02/12 22:31:39.70
Perl(笑)

686:デフォルトの名無しさん
12/02/12 22:32:39.76
>>665
うるう年を考慮してないね

687:デフォルトの名無しさん
12/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
12/02/12 22:55:33.91
やっぱりPerlでprintを使うときは括弧を付けたほうが後々いいということですかね。


689:デフォルトの名無しさん
12/02/12 23:06:50.86
Smart::Commentsが超便利
URLリンク(d.hatena.ne.jp)

690:デフォルトの名無しさん
12/02/12 23:11:21.16
教材に最適です。頂戴します。

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

692:デフォルトの名無しさん
12/02/13 06:42:43.63
日本と中国の二者択一を迫る米国
URLリンク(www.chosunonline.com)

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

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

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

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


米国 「もう韓国は捨てるから、中国の植民地になるか、親日になり日本の植民地になるか選べよ」 ★3
スレリンク(poverty板)

693:デフォルトの名無しさん
12/02/13 15:25:22.15
>>691
バグ直しただけです

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

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

696:デフォルトの名無しさん
12/02/13 21:10:05.86
うるさいゴミ

697:デフォルトの名無しさん
12/02/13 21:19:17.63
>>694は荒らし?

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

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

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

700:デフォルトの名無しさん
12/02/13 21:58:38.13
自己紹介乙
コテ付けてくれ

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

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

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

703:デフォルトの名無しさん
12/02/13 22:06:12.90
>>702
うるさい池沼

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

705:デフォルトの名無しさん
12/02/13 22:11:27.18
なんだ、自己紹介だらけで礼儀正しいいいスレじゃないか。

706:デフォルトの名無しさん
12/02/13 22:28:37.19
>>699
>>694が抜けてるぞ。

707:デフォルトの名無しさん
12/02/13 22:36:19.94
>>706
死ね死ね死ね死ね死ね死ね死ね死ね

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

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

710:デフォルトの名無しさん
12/02/13 23:16:53.97
質問も何もきてないのにいきなり荒れててワラタw

711:デフォルトの名無しさん
12/02/13 23:49:13.47
>>710
 >>694

712:694
12/02/14 00:09:53.24
すげえ。いつのまにか俺が3人もいる。

713:694
12/02/14 00:10:50.66
11人いる!


714:デフォルトの名無しさん
12/02/14 00:20:24.34
>>694は何でわざわざこのスレ選んで荒らし始めたんだ?

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

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

717:デフォルトの名無しさん
12/02/14 00:47:40.28
>>714
さぁ、仕事でもクビになったんじゃね?w

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

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


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

720:デフォルトの名無しさん
12/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:デフォルトの名無しさん
12/02/14 15:53:35.47
>>718
何でもかんでも開発環境のバグにするなよゴミ
バグってるのはお前の頭だろ

722:デフォルトの名無しさん
12/02/14 17:08:01.93
>>718
何でPerlの仕様も読まずに質問してんだ池沼。

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

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

725:デフォルトの名無しさん
12/02/14 19:01:14.74
どうしてブラウザの話になってんだよ糞は>>723-724だろ

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

727:デフォルトの名無しさん
12/02/14 20:50:22.08
朝鮮人がわいとるのー

728:デフォルトの名無しさん
12/02/14 21:25:50.30
ちんちんかいかい

729:デフォルトの名無しさん
12/02/14 21:39:01.98
>>722
POSIX仕様はPerl仕様の範疇に無い。
更に%sは拡張仕様。

730:デフォルトの名無しさん
12/02/14 23:03:48.99
>>726

チンカス

731:デフォルトの名無しさん
12/02/14 23:12:04.09
>>730

マンカス

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

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

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

733:デフォルトの名無しさん
12/02/15 00:29:19.01
>>732

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

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

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

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

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

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


次ページ
最新レス表示
レスジャンプ
類似スレ一覧
スレッドの検索
話題のニュース
おまかせリスト
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch