Perlについての質問箱 63箱目 at TECH
[2ch|▼Menu]
[前50を表示]
400:デフォルトの名無しさん
16/08/02 23:49:48.17 C1WIu1+e.net
use DateTime::Format::Pg;
print DateTime::Format::Pg->parse_datetime( '2016-08-21 23:50:01' )->epoch;

401:デフォルトの名無しさん
16/08/05 00:01:27.27 RLQt/Rjs.net
>>393
それだとロックの間に隙間ができる

402:デフォルトの名無しさん
16/08/05 00:02:57.68 RLQt/Rjs.net
実行時間が0.15秒から0.2秒のperlスクリプトは重い部類ですか?

403:デフォルトの名無しさん
16/08/05 00:22:53.93 /+BaQz+x.net
>>393
データとは別にロック中か識別するためだけのロックファイルまたはディレクトリを用意するものなんじゃないの?>>392のように

404:デフォルトの名無しさん
16/08/05 09:40:54.31 rvcc+G4N.net
1:投稿数ファイルをロック
2:投稿数ファイルを書き込み
3:投稿数ファイルをアンロック
4:投稿ファイルをロック
5:投稿ファイルを書き込み
6:投稿ファイルをアンロック
じゃだめなのかな。

405:デフォルトの名無しさん
16/08/05 09:49:56.50 iMQ1FKDS.net
それ投稿数と投稿が連動してないやん
ロック
必要な書き込み全部
ロック解除
が普通

406:デフォルトの名無しさん
16/08/05 17:58:59.50 rvcc+G4N.net
それは「普通」というより「手抜き」だね。最初はそれでいいと思うけど。

407:デフォルトの名無しさん
16/08/05 21:06:28.92 n2C4Ao5J.net
>>401
普通じゃなくて天才だよ。
完璧な答え。

408:デフォルトの名無しさん
16/08/05 21:06:53.73 n2C4Ao5J.net
>>399
だめ。それはバグ。

409:デフォルトの名無しさん
16/08/06 00:52:14.83 aSfsFG4F.net
まあ質問の直後にいきなり答えが書いてある
それを分からないのが混ぜ返してるだけだ
>>391-392

410:デフォルトの名無しさん
16/08/06 07:58:04.15 nmoqGXlF.net
(書き込み時)
1:まとめロックようファイルを作る
2:まとめロック用ファイルを排他ロックする
3:投稿ファイルにを投稿を書き込む
4:投稿数ファイルに投稿数を書き込む
5:まとめロックの解除
(観覧時)
1:まとめロック用ファイルを共有ロックする
2:投稿ファイルを読み込んで表示する
3;投稿数ファイルを読み込んで表示する
4:まとめロックを解除
これが正しい

411:デフォルトの名無しさん
16/08/09 01:43:06.25 s2zPwIrc.net
>>396
何のために数字が振ってあるのか分かる?

412:デフォルトの名無しさん
16/08/09 02:52:34.66 d2ilw35z.net
なんのため?
プロセス間の整合を取るのにプロセス内の順序は全く意味ない数字と思うけど。
うーん、なんのためだろ?教えてくれないかな?

413:デフォルトの名無しさん
16/08/09 22:13:03.27 zWs+JfAu.net
> プロセス内の順序は全く意味ない数字と思うけど。
え? 順番を入れ替えても同じなると思ってるの?
例えば5 → 1 → 4 → 3 → 2 → 6 の順番で
実行しても同じ結果になると?
ロックの話以前に、あんたが何が言いたいのかわからない

414:デフォルトの名無しさん
16/08/09 23:09:59.97 d2ilw35z.net
んでなんのため?
あと関係ない話しかしてないようだけど、同じになるって情報はどこから?
そしてその話になんの意味があると思い込んでますか?

415:デフォルトの名無しさん
16/08/09 23:36:26.59 zWs+JfAu.net
> んでなんのため?
順番が重要だからだろ。

416:デフォルトの名無しさん
16/08/09 23:38:43.66 zWs+JfAu.net
>>393が書いてあることは正しくて、
この順番通りの処理をすると不整合が起きない。
重要なのは書き込みを行う前に書き込むファイルすべてを
ロックする


417:ニいうこと。最初にまとめて行う。 こうすることでロックの間に処理が割り込まれず 正しく書き込むことができる。



418:デフォルトの名無しさん
16/08/09 23:45:04.85 d2ilw35z.net
ここまで正しい回答が何度も出てるのに、そのあとから間違った回答を自身満々にするのもすごいと思う
ロックは常にプロセス間の整合のみ取るべし

419:デフォルトの名無しさん
16/08/09 23:54:26.10 d2ilw35z.net
ごめん。外部仕様としてはこの場合正しかった。
内部的にはやってはいけないお手本のような無意味なロックがされてて、それで勘違いした。すまんかった。

420:デフォルトの名無しさん
16/08/10 08:11:51.04 UJ0StgLg.net
いいってことよ

421:デフォルトの名無しさん
16/08/13 09:19:35.74 Y2Ng1HRN.net
確かにロックはプロセス間通信の一種で使う技術も同じか
こうゆうのはスクリプトをプログラムと思ってる人と、プログラムの基礎的な部分から学んだ人とでは差が出そうだね

422:デフォルトの名無しさん
16/08/22 20:05:32.69 2GCPiaHi.net
windows7で文字化けファイル名を取得するとショートファイルで得られるようですが、
ロングファイルのビットの並びをそのまま得たいです。
指定して得るにはどうすれば良いでしょうか?
ちなみにDOSなどでのコマンドは知っています。

423:デフォルトの名無しさん
16/08/22 23:45:40.07 vzm1zF9k.net
`dir /b *.*`
次スレのテンプレに追加するから

424:デフォルトの名無しさん
16/08/23 00:01:48.07 GgtizVRn.net
コマンドじゃなくてPerlでどうにかしたいのだけど

425:デフォルトの名無しさん
16/08/23 02:38:12.51 a3VZWpnc.net
バッククォートの意味が分からないのかな

426:デフォルトの名無しさん
16/08/23 07:59:22.61 GgtizVRn.net
コマンドだろ

427:デフォルトの名無しさん
16/08/23 22:48:28.92 evJ0lXFt.net
my @file = split(/\n/,`dir /b *.* 2>NUL`);
# あとは夏休みの宿題、な

428:デフォルトの名無しさん
16/08/24 08:59:06.43 hHpNATWD.net
すまん、回答してるつもりだろうけど、頭悪い人に用はないんだ。
わざわざ何度も書いてる様だが、一番最初に(も)言った通りコマンド使うやりかたはできるから。
あと全レス会話の繋がりもなく、堂々と好き勝手なこと書く人間もしんどい。

429:デフォルトの名無しさん
16/08/24 12:35:26.35 CgBgF68oI
URLリンク(search.cpan.org)

などと挙げてみたものの、あまり信用できないモジュールだな、これ。

430:デフォルトの名無しさん
16/08/24 20:30:09.76 fxHMMLTZ.net
いや、君の記述能力が頭悪いんだよ。
流行の言葉で言うとコミュ力やプレゼン力がない。
コマンド知ってますなんて言い方じゃ伝わらない。
少しは自分の不徳を省みたらどうか。

431:デフォルトの名無しさん
16/08/24 20:38:10.41 W4vM/rXO.net
再現出来る環境無いんだけどWin32::GetLongPathNameはどうかな

432:デフォルトの名無しさん
16/08/24 20:59:49.53 jqqoh+mK.net
これは知ってるかい?→ <*>

433:デフォルトの名無しさん
16/08/24 23:20:14.12 hHpNATWD.net
>>426
すまないがそれでは得られる文字は同じで、文字化け文字にはショートが適用されます。
おそらくwindowsに対するアプローチを変えないとだめだと思うのです。
>>425
いけたよありがとう。
API叩いてやりくりしてたけど、暫定的にそれを使わせてもらうよありがとう。
windowsは外部的にもさっさとunicode使ってほしいと思う。

>>424
その無駄な4行必要か?なんか書きたいなら頑張って回答書けば?(俺としては書かないで頂きたいけどな)

434:デフォルトの名無しさん
16/08/24 23:31:21.73 jqqoh+mK.net
まあとにかく特殊な環境なんだね。もう少し前提条件を書いたほうが早く欲しい回答を得られたと思うよ。
>>4


435:16の書き方じゃ>>424に文句を言う筋合いはないよ。



436:デフォルトの名無しさん
16/08/29 17:11:38.79 x3G6j3++.net
どうでもいいけど特殊な環境じゃなくてwindows標準の仕様かと

437:デフォルトの名無しさん
16/08/29 21:33:30.70 NQxKIK4Q.net
文字化けが問題なんだろうね

438:デフォルトの名無しさん
16/08/29 21:40:22.45 x3G6j3++.net
なぜ化けるのか、と言う話だ
CP932とunicodeが混在してる場合はどうすりゃいいですかって話じゃね

439:デフォルトの名無しさん
16/09/01 19:27:50.30 vCLh7LOG.net
ココ参考にして URLリンク(hirobanex.net)
こういう呼び出ししても
$teng->sql_builder->load_plugin('InsertOnDuplicate');
$teng->sql_builder->insert_on_duplicate(略)
Can't locate object method "insert_on_duplicate" via package "Teng::QueryBuilder"
で呼べないんだけどどうしたらいい?

440:デフォルトの名無しさん
16/09/01 19:29:20.37 vCLh7LOG.net
ちなみに
__PACKAGE__->load_plugin('+SQL::Maker::Plugin::InsertOnDuplicate');
でもダメ

441:デフォルトの名無しさん
16/09/01 20:39:24.43 0j1lNnbm.net
ブログ記事じゃなくてPOD読めよ

442:デフォルトの名無しさん
16/09/01 22:35:57.18 vCLh7LOG.net
PODに別パッケージから plugin生やす方法なんて書いてないでしょ

443:デフォルトの名無しさん
16/09/03 20:53:36.76 pSsdJ5JF.net
マジレスするなら、
別の方法で呼べるか試してみる
何が起こっているのか調べてみる
ってところか。

444:デフォルトの名無しさん
16/09/09 12:53:46.35 JRjUoSNq.net
何を調べたらいいのかわからんので手が付かない

445:デフォルトの名無しさん
16/09/09 13:05:29.57 JRjUoSNq.net
はっきりしてるのはhirobanexのとおりに書いてもエラーで動かない事
それも $teng->->execute なんていうタイポレベルの話じゃなく
根本的にどこか間違ってるけど、どこだかわからんということ
$teng->sql_builder ってSQL::Makerを継承した状態でnewされてるんじゃないの?
Teng::QueryBuilder = SQL::Maker だから
これで動くんじゃないの?
$teng->sql_builder->load_plugin('InsertOnDuplicate');
$teng->sql_builder->insert_on_duplicate(略)

446:デフォルトの名無しさん
16/09/09 16:12:29.13 yxgmGddx.net
もう直接コード読めよ

447:デフォルトの名無しさん
16/09/09 16:58:05.37 yxgmGddx.net
$teng->sql_builderでTeng::QueryBuilderのオブジェクトが帰ってくる
これはほぼSQL::Makerを継承しただけなのでSQL::Maker::load_pluginを読むとどうやらクラスメソッドとして書かれている
実際SQL::MakerのPODにも継承したクラスでクラスメソッドとして呼び出す例が書かれている
つまり $teng->sql_builder->load_plugin('foo') という書き方はオブジェクトから呼び出してるので間違い(おそらくTeng::QueryBuilder=HASH(0x000000)みたいなところに生えてる)
Teng::QueryBuilder->load_plugin('foo') とするか ref($teng->sql_builder)->load_plugin('foo') とするか
もしくはブログの例にもある通り独自のQueryBuilderクラスを用意するか
>>433
この__PACKAGE__はどこに書いたんや?__PACKAGE__の意味わかってる?

448:デフォルトの名無しさん
16/09/09 17:40:55.04 iPoh5J1m.net
もう、馬鹿過ぎて哀れだ。実際にやりたいことは
*SQL::Maker::insert_on_duplicate = \&SQL::Maker::Plugin::InsertOnDuplicate::insert_on_duplicate;
ってことでしょ? もうこれでいいでしょ。POD すら読まないんじゃ助けようがないよ。

449:437
16/09/10 11:47:34.76 VYsCJTGt.net
ごめん、言い過ぎた。とりあえず、正解が分らない段階で俺ならどうするかを書くよ。
まず、何をしているのかを POD で確認する。
POD では load_plugin についてはクラスメソッドとして使う例だけが書かれている。
ここで「おかしい」と思わなければならない。
オブジェクトメソッドとして使えないとは書かれていないのでソースコードを読む。
%INC を見ればソースコードの場所は分かる。
load_plugin は予想以上にシンプルだった。これで解決。
解決しなかった場合。
まず、SQL::Maker::Plugin::InsertOnDuplicate を明示的に use する。それで間違いなく呼べる。
SQL::Maker::Plugin::InsertOnDuplicate::insert_on_duplicate( $teng->sql_builder)
あるいは
$teng->sql_builder->SQL::Maker::Plugin::InsertOnDuplicate::insert_on_duplicate
好きな方でいい。これでうまくいくなら load_plugin で何かが間違っている。
デバッガを使うか、load_plugin を差し替えて動作を詳しく調べる。

450:デフォルトの名無しさん
16/09/10 18:20:16.29 1M4Sozo+.net
Tengを使うのかどうか自分で選べるのなら、自分が理解していないものを使わないという選択肢がある。
他の人が選んでしかも使わなければならないという状況なら、選んだ人にどう使うのかを聞くといい。

451:デフォルトの名無しさん
16/09/10 19:19:33.59 7Wlp4jMr.net
多分ブログ書いた人やその人に教えた人はTeng本体と混ざって勘違いしたんだろうな
Teng自体はインスタンスからもロードできるから

452:デフォルトの名無しさん
16/09/13 17:44:13.57 AYCTTYgO.net
この記事、オレオレメモだって自分で書いてるからわざわざつっこむのも野暮だけどOR検索の例もちょっとひどい。
どうしてこうなった?

453:デフォルトの名無しさん
16/09/22 14:09:25.16 ULuG4eTB.net
Windows の Strawberry Perl で、「Parallel::ForkManager」は使えますか?
----------------------------------------
use LWP::Simple;
use Parallel::ForkManager;
...
@links=(
["URLリンク(www.foo.bar)
["URLリンク(new.host)
...
);
...
# 最大30プロセスで並列的にダウンロードを行います
my $pm = new Parallel::ForkManager(30);
foreach my $linkarray (@links) {
$pm->start and next; # forkさせます
my ($link,$fn) = @$linkarray;
warn "Cannot get $fn from $link"
if getstore($link,$fn) != RC_OK;
$pm->finish; # 子プロセスをexitします
}
$pm->wait_all_children;
----------------------------------------
の様なスクリプトで、数万ファイルをダウンロードしようとすると、
  child process '-*****' disappeared.
  A call to `waitpid` outside of Parallel::ForkManager might have reaped it.
のエラーを出しながら、メモリを全消費・開放を何度か繰り返した後に、
最終的には、「Out of memory!」で異常終了します。
Cygwin の Perl では、「Cannot get $fn from $link」エラーを出しまくりますが、
メモリを全消費する事はありません(異常終了もしません)。

454:デフォルトの名無しさん
16/09/22 15:02:46.45 EZPik98J.net
windowsのForkは、表面上は同じように動作する仕様になっているが、
実際にプロセスやスレッド、CPUの動作が期待通りになってるかと言うとそれは違う。
ほとんどの場合が、unixとの互換性を保つための見せかけ。

455:デフォルトの名無しさん
16/09/22 16:23:36.65 PQbGo3UU.net
rulezの綴りがzの辺り、悪さしてそうだな

456:デフォルトの名無しさん
16/09/23 01:08:30.38 Ay1vA5a9.net
if($hoge=~/(\d+)$hoge3$/){$hoge2=$1}
これの意味は
$hoge3が数字のみなら$hogeに代入し、$hoge2にも代入するという意味でしょうか?

457:442
16/09/23 05:21:37.52 CNgCRT2E.net
>>447
「WindowsのFork」の意味は分かりませんが(Windows用PerlのFork?)、
Cygwin の perl は、
  C:\cygwin64\bin\bash --login -i -c "perl ...
等としなくても、Windows から直接起動出来るので、
あのスプリクトで直接起動しても、メモリエラーは出ませんでした。
Cygwin の perl を、Strawberry Perl の代わりに、、、と思ったら、



458:ォなり chomp が、CR+LF を削除してくれなかった。 >>448 perldoc.jp からのコピペです。 >>449 if ( 文字列 =~ /パターン/ ) もし「文字列」の中に「パターン」が含まれていれば、 if ( $hoge =~ /(\d+)$hoge3$/ ) { $hoge2 = $1 } もし「 $hoge 」の中に「 \d+$hoge3$ 」が含まれていれば、「 $hoge2 」に「 \d+ 」を代入



459:445
16/09/23 08:03:28.29 Ay1vA5a9.net
>>450
ありがとうございます。
他言語の底辺SEなので助かりました。

460:デフォルトの名無しさん
16/09/23 14:09:14.63 eBfGtRhY.net
普段それを読む文化にない人がいきなり読めたら逆にすごいと思う
PerlってPerlが分かる人だけの言語

461:デフォルトの名無しさん
16/09/26 17:38:36.14 ak8zLIw0.net
Perl on Bash on Ubuntu on Windows10 での、
モジュールのインストールで、無駄に苦労した。
  解決法: Config.pm の修正

Windows10 のコマンドプロンプトでも、
エスケープシーケンスが使えるらしい。
  PROMPT $E[96m$T$E[3D $E[93m$P$G$E[37m$E[1C
懐かし

462:デフォルトの名無しさん
16/09/28 02:39:45.69 sK8+jqCL.net
ソースはサンプルコードな

463:デフォルトの名無しさん
16/10/03 14:01:12.25 OUfpKV3+.net
C:\> prompt $e[1;36m[$d$s$t$h$h$h] $e[1;33m%USERNAME%@%COMPUTERNAME% $e[37m$p$_$g$s

464:デフォルトの名無しさん
16/10/03 19:32:24.04 tI+B9pP0.net
ザメフォン元気?

465:デフォルトの名無しさん
16/10/06 18:37:40.82 fMpg74pi.net
ビット演算を多用したいんだけど、変数のサイズを指定したい。longとか。
とりあえず、16bitと32bitと64bitの整数が欲しい。
あと数値と文字が勝手に切り替わらないようにしたい。
ビット演算してるブロックだけでいいんで。
あと環境の保証も欲しい。どのマシンでどのbitのPerlとか関係なく。
俺が32bitのビット演算って言えばそれはもう絶対32nit演算。
もちろん不当に遅くなる方法は許さない。

466:デフォルトの名無しさん
16/10/06 20:14:48.16 rUXrZJG3.net
C で書け。

467:デフォルトの名無しさん
16/10/06 20:56:23.24 Wdgc44Vq.net
C++でもいいぞ

468:デフォルトの名無しさん
16/10/06 21:07:21.59 ZdOAOk1u.net
rubyで十分

469:デフォルトの名無しさん
16/10/06 21:31:39.42 fMpg74pi.net
Cとかでもいいけどdllの使い方分からないのだ

470:デフォルトの名無しさん
16/10/07 03:14:09.37 hiGL0oI+.net
URLリンク(perldoc.jp) でOK

471:デフォルトの名無しさん
16/10/07 07:25:20.66 codMUtxm.net
vec かな。それでも不満なら perlfaq3 を読んで C で書け。

472:デフォルトの名無しさん
16/10/07 12:43:21.52 codMUtxm.net
実際に何をして、その結果何が問題だったの? そのくらいは書いてくれないと……

473:デフォルトの名無しさん
16/10/08 01:08:43.11 hitB9rm0.net
>>461
xsと言うのがあるが、一時的に値が複製されて良いなら標準入出力(メモリ渡し)のほうが絶対に楽だと思うのだ。
ま、perl使ってるなら複製されたメモリのほうが元のデータより圧倒的に小さいはずだが

474:デフォルトの名無しさん
16/10/08 09:19:23.51 ZgFPdp2t.net
ビット演算したいなら普通にすればいいよ。
◯ビット変数がほしいといわれても、それは適切にマスクすればいいだけだし。
◯ビット変数のように振る舞うものがほしいということなら、Perl は C よりも期待に応えられると思うよ。
まずは C と同じ書き方をして速度を計ってみてよ。話はそれからだ。

475:デフォルトの名無しさん
16/10/08 22:30:15.59 KfBpvv2w.net
はぁ?
~0 この時点で同じになりませんがな

476:デフォルトの名無しさん
16/10/09 00:00:21.79 ja1MeL+I.net
>>457 に言ってるんだよ?

477:デフォルトの名無しさん
16/10/10 16:43:42.37 zhEtfxQ/.net
もう連休終わっちゃうんだけど結局何をしたかったのかな。

478:デフォルトの名無しさん
16/10/11 00:06:06.59 SYi+Wrc4.net
その日のうちに解決したんじゃね?
木曜日の相手になに言ってんだか

479:デフォルトの名無しさん
16/10/11 00:28:33.80 SYi+Wrc4.net
しかし普通の言語やったあとにPerlやると異常なほど即座に短く書き終えるからなにか書き忘れてるんじゃないかと不安になる。
正しく動くと分かると異常なほど楽で嬉しくなるし、C++とかが馬鹿らしくなる。
そして実行速度計ると結局全部納得してため息。

480:デフォルトの名無しさん
16/10/11 19:01:16.50 A+TNY00d.net
stat($file_path);でファイルを作成したtimeは
atime,mtime,ctimeのどれなの?

481:デフォルトの名無しさん
16/10/11 19:50:08.12 Mt8tOIIr.net
>>472
URLリンク(perldoc.jp)
> 8 atime 紀元から、最後にアクセスされた時刻までの秒数
> 9 mtime 紀元から、最後に修正(modify)された時刻までの秒数
> 10 ctime 紀元から、inode 変更(change)された時刻までの秒数 (*)
> 明らかに、ctime のフィールドは移植性がありません。
> 特に、これから「作成時刻」を想定することは出来ません
URLリンク(perldoc.jp)
> ファイルシステムはアクセスタイムスタンプや変更タイムスタンプに
> 対応していないかもしれません (つまり移植性のあるタイムスタンプは
> 変更タイムスタンプだけです); またタイムスタンプは 1 秒単位では
> ないかもしれません (例えば、FAT ファイルシステムは時刻の単位は
> 2 秒単位です)。
>「inode 変更タイムスタンプ」 (-C ファイルテスト) は (Unix 以外では)
> 実際には「作成タイムスタンプ」かもしれません。

482:デフォルトの名無しさん
16/10/12 08:39:20.39 9k51B2Do.net
Perlのオブジェクト指向読んだばっかりで理解が曖昧なんだけど、
これだと、オブジェクトがオブジェクトなのか関数なのかって呼び出し側で決める事にならない?
コンストラクタもメソッドも。
ついでに、インスタンスのカプセル化どうこうも、呼び出し側の権利?
みたいに見えたのですが。

483:デフォルトの名無しさん
16/10/12 13:04:43.13 kXFNS19K.net
>>474
そうだよ
それはC++等でも同じ

484:デフォルトの名無しさん
16/10/12 14:33:18.63 9k51B2Do.net
>>475
ありがとう
以下みたいな感じの記述は使っても問題ない?
あと穴があった場合も教えて欲しい。
(複数回に分けて書くので途中で書けなくなるかも)

use utf8;
use strict;
use warnings;
#ただの実験
# 1: メソッドとインスタンスをカプセル化する。
# 2: クロージャを、あたかもオブジェクト指向と同じ記法で呼び出せるようにする。(クロージャとオブジェクト指向の同一視)
# 3: クロージャをクロージャのまま使いたければそうできるようにした。そもそもクロージャのほうが速いので。

485:デフォルトの名無しさん
16/10/12 14:33:37.13 9k51B2Do.net
{
package Class;
sub new{
my $class = $_[0] eq __PACKAGE__ ? shift : undef ; #オブジェクトとして呼び出されたかどうか
my $self = {
Name => shift,
};
my $method = {
NameGet => sub{ $self->{Name} },
NameSet => sub{ $self->{Name} = shift; },
};
return $method if(!$class); # 普通の関数(クロージャ)として呼ばれた場合
return bless $method, $class; # オブジェクトとして呼ばれた場合
}
sub AUTOLOAD {
our $AUTOLOAD;
my $method = shift;
ref($method) eq __PACKAGE__ or return("error");
my @load = split '::', $AUTOLOAD;
my $load = $load[-1];
$method->{$load}->(@_);
}
}

486:デフォルトの名無しさん
16/10/12 14:34:03.93 9k51B2Do.net
{
package test;
my $c = Class::new("Closure"); #クロージャとして呼び出すと、一般的な


487:クロージャと同じように使える。 print $c->{NameGet}->() . "\n"; my $o = Class->new("Object"); #オブジェクト指向として呼び出すと、オブジェクト指向と同じように使える。(中身はクロージャ) print $o->NameGet() . "\n"; print Class::NameGet(); #関数のように呼ぶとエラー } __END__ 以上です



488:デフォルトの名無しさん
16/10/12 16:49:58.02 HdFKT2Ip.net
オブジェクト指向=カプセル化ではないし、perl5でももう少しスマートなカプセル化のやり方もあるが筋が悪いからおすすめはしない
perl6はオブジェクト指向に関してはかなりマシだけど、そもそも速度気にするならperlは向かない
perl5じゃないとダメなら規約などで上手く付き合うしかない
ちなみにそのコードだとまともに継承できないね

489:デフォルトの名無しさん
16/10/12 21:51:13.12 9k51B2Do.net
やりかたがあると言うのなら、提示して欲しいのだけど。(ただの俺は知ってるぞ自慢?)
事前に試しましたが、継承はできましたよー。
複数クラスを書くと長くなるので書きませんが、
まったく同じように別のクラスを書いて、ベースにしたいクラスを呼び出して更新すれば
とりあえずインスタンスもメソッドは継承されるですね。
あと穴は一つ発見しました。
これは後出しにしようかな。

490:デフォルトの名無しさん
16/10/13 02:01:07.92 Zro6GxWw.net
こいつは何しに来たんだ?

491:デフォルトの名無しさん
16/10/13 10:53:38.82 O2Ch/Rp5.net
perlでpcアプリケーションって作れますか?

492:デフォルトの名無しさん
16/10/14 12:30:24.58 om26oWOX.net
>>482 作れます。

493:デフォルトの名無しさん
16/10/14 22:56:09.64 GnnBnQfG.net
スーパーコンピューターのアプリケーションしか作ったことがないのですが、
そんな私でも作れるでしょうか?

494:デフォルトの名無しさん
16/10/15 02:02:31.11 UBpH7j9p.net
スパコンのSIMDやMPIの方が楽だから
無理しなくていい

495:デフォルトの名無しさん
16/10/17 02:26:31.41 WRe7I7Bu.net
2つのテキストファイルを比較し、一致した文字列を取り出したいんですが、教えていただけませんか

496:デフォルトの名無しさん
16/10/17 03:43:08.25 sXplblvU.net
一致した文字列を穴なく完璧に厳格に定義して示して下さい。
そしてそれが出来ればプログラミングの8割は終了しています。

497:デフォルトの名無しさん
16/10/17 09:06:26.12 z3YwWHWS.net
diff 系かなあ。CPAN で検索してみるといいよ。

498:デフォルトの名無しさん
16/10/17 09:12:40.23 9EO0+SUA.net
Perl使うまでもないような
cat fileA fileB | sort | uniq -d

499:デフォルトの名無しさん
16/10/17 09:33:07.31 z3YwWHWS.net
いやいや、一致した「行」とは言ってないから。何を望んでいるのかを確認しないと。

500:デフォルトの名無しさん
16/10/17 20:34:47.85 Denl80JP.net
単語だと形態素解析が必要になるけどこいつにそんな課題出さないだろう

501:デフォルトの名無しさん
16/10/18 22:42:04.03 kO2WqMh/.net
my $input = [];
CSVファイルを一行づつ配列にして多元配列にした後
for (my $i=0; $i<$#$input; $i++) {print Dumper($input->[$i]),"\n";}
で全データ出力するのですが、その後(?)関数内で同じく
for (my $i=0; $i<$#$input; $i++) {print Dumper($input->[$i]),"\n";}
とすると、1行目の内容が、$#$inputの数だけ繰り返し表示されます。
関数内でも全データを出力したいのですが、どうしたらよいでしょうか。
どなたか教えてください。よろしくお願いします。

502:デフォルトの名無しさん
16/10/18 23:56:04.56 sMICGAt6.net
1回ずつループしながら、デバッグして、使っている変数を見れば?
変数のwatch 機能、あるだろ?

503:デフォルトの名無しさん
16/10/19 00:45:58.03 cfM1WNHO.net
>>493
アドバイスありがとうございます。VisualStudioCodeを素で使ってまして
perlの


504:watch機能は無いようなのです。



505:490
16/10/19 00:48:54.12 cfM1WNHO.net
watch機能はないのですが、添字の$iを具体的な数字を入れてはprintで確認して
1行目のデータになっていると気づいた次第です。

506:デフォルトの名無しさん
16/10/19 08:22:02.29 p26QOV7Y.net
>>492
こういうこと?再現しないよ
use Data::Dumper;
my $input = ["abc", "def", "ghi"];
for(my $i=0; $i<=$#$input; $i++) {
print Dumper($input->[$i]), "\n";
}
&func;
sub func {
for(my $i=0; $i<=$#$input; $i++) {
print Dumper($input->[$i]), "\n";
}
}

507:デフォルトの名無しさん
16/10/19 09:10:37.02 cfM1WNHO.net
>>496
要はそういうことなんだと思います。csvファイルを読み込んで
$input[[1, 2, 3],[4, 5, 6],[7, 8, 9]];
for (my $i=0; $i<$#$input; $i++) {print Dumper($input->[$i]),"\n";}
でDumperのフォーマットですが[1, 2, 3],[4, 5, 6],[7, 8, 9]を表示
sub funcの中で同じforをすると
Dumperのフォーマットですが[1, 2, 3],[1, 2, 3],[1, 2, 3]を表示します。
必要なところを抽出して現象がでたらソースをアップします。

508:490
16/10/19 13:56:56.14 cfM1WNHO.net
ループ内で行っていた条件分岐の間違いでした。お騒がせしました。
489さん、492さん、ありがとうございました。

509:デフォルトの名無しさん
16/10/22 10:51:15.40 NzADNRlY.net
良い回答はないと思うんだけど、正規表現で指定する内容をランダムで作り出す方法ってないかな。
例えば
/^[0-9][0-9a-zA-Z]{4}[A-Z]$/;
だったら
5scDuZ
とかが得られますよ的な。

510:デフォルトの名無しさん
16/10/22 11:26:59.02 PD3z3WkO.net
String::Random

511:デフォルトの名無しさん
16/10/22 11:46:10.43 NzADNRlY.net
おいおいなんでもあるなPerlって

512:デフォルトの名無しさん
16/10/22 17:34:20.47 BSsXTeb9.net
CPANのモジュールも更新されないものが増えてきた
もうオワコン

513:デフォルトの名無しさん
16/10/25 21:00:26.38 EVpxycMx.net
Windows環境でUnixのテキストファイルを処理します
改行LFがCR+LFに変換されてしまうのを防ぐために
perl -i.bak -p -e "BEGIN{ binmode STDIN; binmode STDOUT; } s/unko/manko/g;" hogo.txt
みたいな風に書いてるんですけど
もうちょっとスマートな書き方ありませんか?

514:デフォルトの名無しさん
16/10/25 21:11:38.78 U4JQUv53.net
binmodeしないと自動変換されるの?
まぁ試してないけど、ワンライナーをやめれば良いのさ

515:デフォルトの名無しさん
16/10/26 00:45:00.36 IJ0r6zMc.net
perl -pe

516:デフォルトの名無しさん
16/10/26 03:02:37.18 1uI8N3VZ.net
>>503
perl -mopen=OUT,:raw -i.bak -pe "s/unko/manko/g" hogo.txt
URLリンク(perldoc.jp)
URLリンク(perldoc.jp)

517:デフォルトの名無しさん
16/11/10 22:48:13.72 SbD3rZb1.net
perlの場合は文字コードがEUCのデータファイルがあって
入力フォームからハングル文字で書き込むと自動的に&#○○○;の形に変換されて書き込まれるのですか?

518:デフォルトの名無しさん
16/11/10 22:56:55.76 Him+SRv0.net
フォームってなに?

519:デフォルトの名無しさん
16/11/10 23:16:39.82 e4bBCogG.net
日本語と知能が不自由なあちらの人じゃない?

520:デフォルトの名無しさん
16/11/10 23:30:34.65 XrxEtHdJ.net
最近はフォームを知らない人がいるんだ
おぢさん、世代ギャップを感じるよ

521:デフォルトの名無しさん
16/11/11 00:26:38.27 dQSao3i1.net
うわ、知能障害者がまた来たよ。
それともゆとり世代の代表例かな?

522:デフォルトの名無しさん
16/11/11 12:07:09.49 PHyMHsut.net
my $str = "aaa〹&bbb&ccc";
という文字列


523:ェあって &#以外の&を&に置換するやり方は?



524:デフォルトの名無しさん
16/11/11 12:09:09.25 PHyMHsut.net
my $str = "aaa&#12345;bbb&ccc";
という文字列があって
&#以外の&を&に置換するやり方は?
#はここでは全角で入力したけど半角です

525:デフォルトの名無しさん
16/11/11 12:09:58.95 PHyMHsut.net
訂正
my $str = "aaa&#12345;bbb&ccc";
という文字列があって
&#以外の&を&amp;に置換するやり方は?
#はここでは全角で入力したけど半角です

526:デフォルトの名無しさん
16/11/11 12:42:23.87 Bnx4QB3I.net
昨日の知能に問題がある人か

527:デフォルトの名無しさん
16/11/11 12:49:30.58 mEGzssAg.net
s/&(?!#)/&amp;/g
(?!...) 否定先読み

528:デフォルトの名無しさん
16/11/11 17:35:35.83 KyOrnFnp.net
こういう時日本語は全角文字を使えて便利だね
海外の人は&や#が入力できない時苦労しそう

529:デフォルトの名無しさん
16/11/11 17:40:50.55 OyxHpcMK.net
文字参照で書けばどうか?
s/&(?!#)/&amp;/g

530:デフォルトの名無しさん
16/11/11 23:23:43.62 PHyMHsut.net
できました
それとこの文字列で
my $str = "&amp;&amp;&am";
それとこの文字列で&amp;でない&(この場合一番後ろの&)を&amp;に置換するには
どうすればいいんでしょうか?

531:デフォルトの名無しさん
16/11/11 23:38:03.46 mEGzssAg.net
それも否定先読みじゃないの
同じようにやってごらん

532:デフォルトの名無しさん
16/12/07 13:14:37.83 AwnLgrFF.net
すみません教えてください。
DBD::CSVというのは
標準モジュールに含まれるのでしょうか?

533:デフォルトの名無しさん
16/12/07 15:08:45.45 eBB6Jpl7.net
そもそもDBIが標準モジュールではない

534:デフォルトの名無しさん
16/12/07 15:12:26.59 MGgEOjpT.net
>>521
URLリンク(perldoc.perl.org)
Perl の標準モジュールではないが
Active Perl のようにバンドルされているディストリもある

535:デフォルトの名無しさん
16/12/07 15:13:12.93 AwnLgrFF.net
>>522
ああ、DBIは標準モジュールじゃないんですか。
ありがとうございました。

536:デフォルトの名無しさん
16/12/07 15:18:54.39 AwnLgrFF.net
>>523
なるほど納得です。
開発環境がAcrivePerlで、libに入ってるモジュールは標準と思ってました。
ありがとうございました。

537:デフォルトの名無しさん
16/12/10 20:16:28.52 cBnztJW7.net
perlの乱数生成器の内部状態を保存するにはどうしたらいいですか
seedだけ保存しても100万回 rand を呼んだところで中断したら再開するときまた100万回呼ばないとダメですよね

538:デフォルトの名無しさん
16/12/10 20:34:37.07 bw+AbQq7.net
そもそもrandはOS依存なので諦めてください。

539:デフォルトの名無しさん
16/12/14 23:50:40.69 6q3W8zza.net
と言うか動作の保証が求められる乱数みたいなのはオブジェクトごとに専用で実装する

540:デフォルトの名無しさん
16/12/15 13:10:06.97 ZL343Whf.net
乱数用のモジュール使うしかないんだろうけど有名どころの Math::Random::MT は状態保存はできないみたいだな
pure perl実装の方は無理矢理シリアライズすればできそうだけど

541:デフォルトの名無しさん
16/12/15 15:50:25.81 1Sd664ch.net
自分で書いても3分以内に全部かけそうだけどな

542:デフォルトの名無しさん
16/12/15 21:33:21.20 cgcGxE7wa
>>526
前もこれ書いたな。

package _Rand;
use base 'Clone';
use base 'Math::Random::MT::Perl';

543:デフォルトの名無しさん
16/12/16 20:29:42.48 rLtLojZ+.net
再現性が必要な乱数は、一旦作成してファイルに保存して利用する

544:デフォルトの名無しさん
16/12/17 00:56:05.87 G3Bk7Xtn.net
乱数が無限に必要な場合は円周率で代用する

545:デフォルトの名無しさん
16/12/19 00:17:41.32 qsdLnaaR.net
push pop shift unshiftが未だにどれがどうだったか覚えられません。
毎回ググるのも面倒なのですが、何か覚えるコツみたいなものはありますでしょうか。
ディスプレイに付箋を貼るのは嫌です。

546:デフォルトの名無しさん
16/12/19 00:26:18.79 E/K4i5of.net
毎回調べろ

547:デフォルトの名無しさん
16/12/19 09:49:32.88 OP8mBN0W+
shift   ←┌┬…┬┐← push
unshift →└┴…┴┘→ pop


548:



549:デフォルトの名無しさん
16/12/19 16:34:48.89 CDWthwTd.net
あああ、オレも覚えるのに苦労した
だって、アセンブラの push 命令とは伸びる方向が真逆なんだよ
shift はバッチファイルにも同じ命令があるから分かるよね
前にズラす
はい、お次の方、どうぞ、って感じ
朝勤、昼勤、夜勤、って感じ
push は後ろから押す、背中から押す、ケツから押す、とにかく押すんだ
満員電車に乗るとき、押さないでください、押さないでください、って感じ

550:デフォルトの名無しさん
16/12/19 18:32:42.82 RxkoIqKm.net
スマホかどうか判別するには
if(
$ENV{'HTTP_USER_AGENT'} =~ /iPhone/ ||
$ENV{'HTTP_USER_AGENT'} =~ /iPad/ ||
$ENV{'HTTP_USER_AGENT'} =~ /iPod/ ||
$ENV{'HTTP_USER_AGENT''} =~ /Android/
){
print "スマホだよ";
}
これでいいんですか?

551:デフォルトの名無しさん
16/12/19 21:42:52.71 BI+h437s.net
push,popは一般的なCPU命令のpush.popと同じだね。スタック末尾に積んだり取り出したり。
shift,unshiftは直感的とは言いがたいけど、まあ覚えるしかない

552:デフォルトの名無しさん
16/12/19 23:41:08.79 iJGCCAlx.net
対にして使うならば、push-pop、ないしpush-shift、unshiftはいったん忘れたほうがいい

553:デフォルトの名無しさん
16/12/19 23:58:59.01 qsdLnaaR.net
>>537,539-540
ありがとうございます。
pushは何とかそれで覚えられそうです。
何とかpush-shiftで覚えてみます。
>>535
レスしたいだけのゴミクズはさっさと消えろ。
まともに回答もできないクセに自己顕示欲だけは人一倍。
お前みたいな奴が社会のお荷物なんだよ。
お荷物=捨てるに捨てられないゴミ、だからな。
本当はさっさと処分したほうが社会のためだが憲法と法律によって処分できないだけ。

554:デフォルトの名無しさん
16/12/20 01:30:38.17 vON4ZTDa.net
>>541
自己紹介乙
簡単なことも覚えられない記憶障害者か?それとも統合失調症か?

555:デフォルトの名無しさん
16/12/20 01:58:29.63 quKQ7lis.net
一行レスにこれだけの長文で応えるのは愛があるからだと思うの

556:デフォルトの名無しさん
16/12/20 02:47:43.15 sHqfd7is.net
無理のある例えだが、配列がロケット鉛筆だとしたら
<0[1][2][3]
ケツに押し込むのが push
<0[1][2][3] ← [4]
ケツから飛び出ちゃうのが pop
<0[1][2] → [3]
芯を引っこ抜くのが shift
<0 ← <0[1][2]
先から無理矢理突っ込んじゃうのが unshift
→ <0[1][2][3][4]

557:デフォルトの名無しさん
16/12/20 03:25:48.63 Wy6+Up2x.net
まあどうせすぐ忘れるだろ
結局は染み付くまで調べるのを繰り返すしかない

558:デフォルトの名無しさん
16/12/20 04:26:14.23 VxeGortQ.net
>>541
いやいや、毎回調べるのも十分ありだと思うぞ。
俺はそのうちになんとなく覚えちゃったことけっこうあるよ。

559:デフォルトの名無しさん
16/12/20 05:58:50.42 Wy6+Up2x.net
うろ覚えで使うとバグの発見に苦しむんで
ほんのちょっとでも不安を覚える感じがしたら大丈夫だとは思ってても
必ず調べる方が良いよね

560:デフォルトの名無しさん
16/12/20 14:29:43.74 GHwwkOBP.net
俺も毎回調べてることは色々ある
同じことを100回調べた疑いすらある

561:デフォルトの名無しさん
16/12/20 18:25:40.76 JPbALvOm.net
そんなこと言ってるとまた精神障害者の>>542に記憶障害とか言われるぞw

562:デフォルトの名無しさん
16/12/21 00:24:41.66 nmy+aY6o.net
毎日のように使ってりゃそりゃ忘れることは無いだろうけど
数ヵ月とか間を空けると忘れてて調べなおすことはままある
記憶障害って言われるのはちょっときつい

563:デフォルトの名無しさん
16/12/21 00:30:32.60 lo


564:5qcp8D.net



565:デフォルトの名無しさん
16/12/21 09:29:14.01 Xe+zsvfF.net
覚えにくいことは自分で一覧表を作ると良い
C#の宣言一覧とか目につく所にファイルしてある

566:デフォルトの名無しさん
16/12/23 10:11:56.10 jV2urUkG.net
shiftは考えてみたけど、底の抜けた箱に物が詰まってて、箱自体を上にシフトすると一番下の物がまろび出てくるってイメージかな

567:デフォルトの名無しさん
16/12/24 05:45:04.23 NChqVw6n.net
干草プッシュだけ覚えときゃなんとかなる気がするが、ロケットペンシル記憶術も捨てがたい

568:デフォルトの名無しさん
17/01/01 16:43:08.52 YnMirTCR.net
配列のスライスとリストのスライスは微妙に仕様が違うんだな。最近まで気づかなかったよ。

569:デフォルトの名無しさん
17/01/04 00:26:26.84 9INFfbdp.net
モジュールのインストールすらできないPerlはマジでゴミ
膨大な依存関係を調べて手作業でインストールすればできないことはないのかもしれないが、
そんな暇があるのはニートくらいだろ
ゴミニート専用言語Perl

570:デフォルトの名無しさん
17/01/04 01:41:34.64 9INFfbdp.net
>>829
今ケツの穴が痛くてそれどころじゃない

571:デフォルトの名無しさん
17/01/04 01:41:41.45 9INFfbdp.net
>>829
今ケツの穴が痛くてそれどころじゃない

572:デフォルトの名無しさん
17/01/04 02:01:46.64 Z6+Vp8du.net
菊初めか
お大事に

573:デフォルトの名無しさん
17/01/04 06:53:29.45 Em4GHsJE.net
今ケツの穴が痛くてモジュールのインストールができない
・・・まで読んだ

574:デフォルトの名無しさん
17/01/06 01:50:49.12 0ickO96c.net
HTTP::Liteモジュール使うのと、ソケットでガチアクセスするのと、systemでwgetを実行するのではどれが一番速いですか?

575:デフォルトの名無しさん
17/01/07 02:02:58.42 lcjjTGwJ.net
HTTP::Liteは余計な処理がある分遅い、wgetはネイティブだがforkする分遅い。よってsocketかな

576:555
17/01/07 04:12:05.32 8FKpQ8GY.net
>>562
ありがとうございます。
それではソケットでガチアクセスします。

577:デフォルトの名無しさん
17/01/09 03:46:03.29 Ba0Z9f3i.net
ネトゲで寄生してくる香具師まじでウザい
レベルも装備も明らかに足りてないくせにパーティー入ってくるんじゃねーよ
前半はやる気を見せるためか最前線で敵に突っ込んでいって何度も即死
蘇生スキル持ちの職がいるとはいえMPも有限だし、死ぬと分かってるのに突っ込んで手間かけさせるな
後半は後ろからついてくるだけ
パーティーの人数によって敵の強さが変わるから、攻撃も回復もしない寄生虫一匹分、敵が強くなってるんだよ
まじでお荷物なんだが

578:デフォルトの名無しさん
17/01/09 03:57:16.67 Ba0Z9f3i.net
そういう糞雑魚がパーティーに入れない(入ったとしてもデメリットが大きい)MMORPG作りたいんだけど、
PerlでMMOサーバー作れる?
そうした寄生のできないちゃんとしたMMORPGを作りたい

579:デフォルトの名無しさん
17/01/09 04:02:21.88 09YuDyyp.net
君には無理

580:デフォルトの名無しさん
17/01/09 06:19:53.73 Ba0Z9f3i.net
誰とは質問言わないが、明後日の方向向いたレスしてる知的障がい者がいるな
Perlで作れるかどうかという質問なんだがな
Perl使ってると日本語すら理解できなくなるのか、それとももともと日本語を理解できない朝鮮人が紛れ込んでいるのか

581:デフォルトの名無しさん
17/01/09 06:23:50.50 09YuDyyp.net
どっちにしろ君には無理

582:デフォルトの名無しさん
17/01/09 08:24:01.83 Ba0Z9f3i.net
自分にできないものだから、それをこじらせて
自分以外の人間全員できないと思うようになったのか
ここまでくると哀れだな

583:デフォルトの名無しさん
17/01/10 05:46:20.71 JXAVAbFC.net
ID:Ba0Z9f3i
俺もこいつには無理って意見に全面的に賛成する


584:。 そもそもPerlで作るって発想が馬鹿。



585:デフォルトの名無しさん
17/01/10 08:17:16.04 lvul3mgx.net
それ以前にそもそもPerlなんてゴミを使おうと思う時点で馬鹿。
使い物にならない時代遅れの言語が候補に出てくる時点でプログラマとして致命的。

586:デフォルトの名無しさん
17/01/11 01:38:41.68 cSn92SSs.net
サーバーサイドをPerlで作ってるところはそこそこあるだろう

587:デフォルトの名無しさん
17/01/11 02:22:42.88 TF26KoMK.net
mmoでか?
インタプリタを?

588:デフォルトの名無しさん
17/01/11 18:54:09.92 FfNyKWnK.net
だから君には無理だって
perlでmmoサーバ作れないどころか想像すらできないみたいだし

589:デフォルトの名無しさん
17/01/11 18:59:46.49 9Pm7248G.net
俺は作れるかどうかを疑問視してるんでは無いと思うんだがな
>インタプリタを?
これをどういう風な意味に受け取ってるのかだろう

590:デフォルトの名無しさん
17/01/11 19:22:57.19 TF26KoMK.net
言語としてはPerlはチューリング完全を満たしています
最初に調べることだと思われますが

591:デフォルトの名無しさん
17/01/12 16:15:10.55 5aplhP3Q.net
mmoサーバも作れないゴミ乙
言語がゴミなのか、perl厨がゴミなのか、それとも両方か

592:デフォルトの名無しさん
17/01/12 18:08:05.48 taUnzxu5.net
     (´・ω・`)
   /     `ヽ.   お薬増やしておきますねー
  __/  ┃)) __i |
/ ヽ,,⌒)___(,,ノ\

     (´・ω・) チラッ
   /     `ヽ.   
  __/  ┃  __i |
/ ヽ,,⌒)___(,,ノ\

     (´・ω・`)
   /     `ヽ.   今度カウンセリングも受けましょうねー
  __/  ┃)) __i |
/ ヽ,,⌒)___(,,ノ\

593:デフォルトの名無しさん
17/01/13 01:30:45.41 84sZuYo8.net
オンラインゲームを支える技術、中嶋謙互、2011、技術評論社
サーバの構築・運営、通信量など、
オンラインゲームのほぼ全工程を、説明した本です
大人数用MMOと少人数用P2Pの、両方について書いてある
確か言語は、C++ だったかな?

594:デフォルトの名無しさん
17/01/13 11:59:30.05 lAI6bANo.net
そらそうだろ、Perlなんて電子産廃なんだからC系とかPHPになるだろうよ。
Perlで何かを作ろうってほうがおかしい。

595:デフォルトの名無しさん
17/01/13 16:26:16.86 w9nZHjQ8.net
PHPに代えたって意味無いじゃん
同様の理由でPythonも却下

596:デフォルトの名無しさん
17/01/13 17:31:55.77 knj8G1ZF.net
下らないことにはレス率が増えるこのレベルの低さよ

597:デフォルトの名無しさん
17/01/14 01:50:24.44 dLK6O0iv.net
ウザいゴミ

598:デフォルトの名無しさん
17/01/16 14:17:17.64 pfhmv7nO.net
>>579
大規模なオンラインゲームだと
むしろJavaを使うんじゃないかな?
人集めしやすいし

599:デフォルトの名無しさん
17/01/16 18:16:40.64 dzrBWFk0.net
そんな重いことまずしない

600:デフォルトの名無しさん
17/01/21 22:44:51.61 axnp1ig/.net
>>565
おれなら作れる

601:デフォルトの名無しさん
17/01/22 21:26:40.74 xYSgWZ/D.net
寄生できないmmoとか簡単そうだけどな
(1)死ぬたびに獲得経験値1/10
(2)3回死亡でダンジョンから強制排出&所持金半減&獲得経験値ゼロ
(3)経験値はパーティーメンバーの敵に与えたダメージ比率
(3)があれば身の丈に合ってないダンジョンの時点で経験値はほぼゼロ
ほぼゼロなところへ(1)があるから限りなくゼロに近くなる
寄生でダンジョンクリアだけしようにも(2)のハイリスクがある

602:デフォルトの名無しさん
17/01/24 18:17:56.63 wudREosA.net
>>587
回復職やサポート職の経験値もなしということでしょうか。

603:デフォルトの名無しさん
17/01/24 18:48:47.54 tYWypKKw.net
昔はこれでアラーにならなかったのですが、perl5.8でこれを実行すると @{$_[2]}が原因でこけてるらしいです。
どのように変えればよいでしょうか
my ( @WdayArr ) = ( $_[2] )? @{$_[2]} : ( 'Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat' );

604:デフォルトの名無しさん
17/01/24 22:39:27.02 zqYaLnZ2.net
>>589
# URLリンク(perldoc.perl.org)
use Scalar::Util qw(reftype);
my @WdayArr = reftype($_[2]) eq 'ARRAY' ? @{$_[2]} : qw(Sun Mon Tue Wed Thu Fri Sat);

605:デフォルトの名無しさん
17/01/24 23:38:20.96 LKVAQWtm.net
>>589
$_[2]には何が入ってんだよ

606:デフォルトの名無しさん
17/01/25 08:15:46.34 1MVxS70E.net
>>590
ありがとうございます。やってみます。
>>591
曜日の文字を配列に指定する部分です。なければ、英語の曜日が入ります

607:デフォルトの名無しさん
17/01/25 09:09:34.94 WOhX0mTt.net
違う、そうじゃない

608:デフォルトの名無しさん
17/01/25 09:15:19.78 dJNPI+cJ.net
>>592
Perl 5.16.3 だが、下のスクリプトで1行目を入れても
消しても、きちんと動くぞ。
$_[2]に配列のリファレンス以外のものを入れたのだろう。
(エラーメッセージにそう書いてあるはずなんだが)
-----------------------------------------
$_[2] = [qw(a b c d e f g)];
my ( @WdayArr ) = ( $_[2] )? @{$_[2]} : ( 'Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat' );
print @WdayArr;

609:デフォルトの名無しさん
17/01/25 09:30:32.20 1MVxS70E.net
>>594
use strict;を指定すると参照ダメみたいなエラーが出るので
とりあえずuse strict;を外して応急処置しています。
参照渡しができなくなったんでしょうか

610:デフォルトの名無しさん
17/01/25 10:03:41.94 WOhX0mTt.net
こういう時はエラーメッセージをそのまま貼るのが正解

611:デフォルトの名無しさん
17/01/25 10:20:22.46 1MVxS70E.net
このようなエラーが
Can't use string ("ARRAY(0x10b0458)") as an ARRAY ref while "strict refs" in use at obj.cgi

612:デフォルトの名無しさん
17/01/25 10:29:15.16 WOhX0mTt.net
ARRAY(0x10b0458) というのは配列リファレンスを文字列として評価した時に出てくる
関数の呼び出し元で配列をそのまま渡さずにダブルクォートで囲うなどして文字列化してしまっているのだろう

613:デフォルトの名無しさん
17/01/25 10:31:24.85 1MVxS70E.net
ありがとうございます。関数の実行側のほうを確認します。

614:デフォルトの名無しさん
17/01/28 20:27:36.04 t13qO4X2.net
Perlはマジで糞だな
リファレンスはリファレンスで同じじゃねーの?
バックスラッシュ付けたリファレンスでも種類によって違うとか意味不明

615:デフォルトの名無しさん
17/01/28 20:37:05.87 7oV/H97Q.net
・・・?

616:デフォルトの名無しさん
17/01/30 08:35:21.14 CkOT0sBx.net
Cの共用体のようなことしなければ、
ある「型」のリファレンスは
その「型」のリファレンスのままでよい。
それ以外の使い方をすれば、「間違っている」として
エラーを吐いてくれるのが有難いではないか。
ただ、リストのリファレンスをハッシュの
リファレンスとして使いたい時(またはその逆)
がたまにあるが、それは可能にしてほしいと思う。

617:デフォルトの名無しさん
17/01/30 15:21:11.69 MjhEgZic.net
# こういうのじゃいかんか?
my $ref_to_hash0 = +{ @{ $ref_to_array0 } };
my $ref_to_array1 = [ %{ $ref_to_hash1 } ];

618:デフォルトの名無しさん
17/01/30 21:42:50.47 kKFFvpaa.net
>>603
無駄なものがあって読みづらい
my $ref_to_hash0 = { @$ref_to_array0 };
my $ref_to_array1 = [ %$ref_to_hash1 ];
何がしたいのかわからん。
キーと値が交互に出てくるものを
ハッシュかリストに変換したいのか?


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

546日前に更新/269 KB
担当:undef