Perlについての質問箱 ..
[2ch|▼Menu]
149:デフォルトの名無しさん
19/11/23 01:52:51.48 0LKgjFg3.net
5.30.0
なるべく最新の安定版を追っかけてる

150:デフォルトの名無しさん
19/11/23 02:19:04.46 En+bKilB.net
>>148
STDERRにprintすれば?

151:デフォルトの名無しさん
19/11/23 10:12:25.15 Dim3LBiC.net
perl5.26.1
perl2exe 使うので。

152:デフォルトの名無しさん
19/11/24 00:31:51.83 jceUCsgs.net
>>150
ご意見有難うございます。
ファイルを一番最後に入れるとできるということがわかりました。
perl -i -spe 's/AA/$var/; END{print "complated.\n"}' -- -var="BB" /home/xxx/aaa.txt

153:デフォルトの名無しさん
19/11/25 10:33:31.52 veETdbiQ.net
>>152
-i があるからでは?
-i.bak とかやっとくと .bak をファイル名に付加したバックアップ作れるよ。
多分新規ファイル開いてそちらに出力して後でリネームして元ファイルのバックアップを取ろうとしてるんだろうと思う。
-i の直後に何もない場合はバックアップ取らずに元ファイルにリネームだけやってるんだと思う。

154:デフォルトの名無しさん
19/11/26 23:14:08.94 EA1DZQ5h.net
>>153
コメントありがとうございます。
今回やることはファイルに上書きしたくバックアップもいらなかったので -i で良いかなと思っていました。
ワンライナーはよくお世話になってるのですが、今回-sでperl内に変数として渡せることがわかり、ますます重宝しそうです。

155:デフォルトの名無しさん
19/11/30 17:02:59.68 hCKH6fU7.net
今日、学んだこと。
/^([a-c]){2}\1/
は 'abb' にはマッチできるが 'aba' にはマッチできない。
もちろん 'aaa' にはマッチできるが…要するに
/^([a-c]){2}\1/

/^([a-c])\1\1/
と同じではなかった。

156:デフォルトの名無しさん
20/02/01 09:03:36 qxbFBKGD.net
パターンの中で\1って使えるんや…
正規表現って普通「事前に」FSMにコンパイルされてからマッチングに使うるんじゃないの…?
バックトラックとかする高度な実装のやつはまた違うんかね

157:デフォルトの名無しさん
20/02/01 13:27:18 wtOh7v6m.net
>>156
¥1は、むしろパターンの中でしか使わない。外で使うときは$1のほう。
正規表現は、バックトラックがあたりまえ。しない実装なんかあるか?

いろいろ勘違いしてるぞ。

158:デフォルトの名無しさん
20/02/02 08:34:53 7b/FZYuN.net
>>157
話が通じなさそうで大変よろしい

159:デフォルトの名無しさん
20/02/02 13:46:05 9cWLJdKQ.net
s/(pattern)/\1/
という使い方をするもんだと思いこんでいて、謎のバグに悩んだ

160:デフォルトの名無しさん
20/02/04 19:17:18 64ds8brY.net
perl hacks買った
送料込み300円

161:デフォルトの名無しさん
20/02/04 19:49:23 53yGrLtS.net
買われてしまった。
モダンperl入門でも買おうかな

162:デフォルトの名無しさん
20/02/05 00:34:08.21 Yyzz6n+F.net
今さら「モダン」もないやろ。w
どうとでも好きに書いたらええがな。

163:デフォルトの名無しさん
20/02/05 04:02:23 rxl56Lqp.net
モダンとか死語だもんな
そういうワード使うしかなかった当時の状況もあるけど

164:デフォルトの名無しさん
20/02/05 17:51:27 9nK7Yle0.net
死語かなあ?

165:デフォルトの名無しさん
20/02/05 21:33:12 SZWAnwkp.net
>>156
決定性有限オートマトンと非決定性有限オートマトンについて調べるといいぞ。
lex は前者で Perl は後者だ。

166:デフォルトの名無しさん
20/02/05 22:58:10 TkSDhbEE.net
そういやモダンperl入門の新刊どうなった?

167:デフォルトの名無しさん
20/02/05 23:00:15 TkSDhbEE.net
2014年1月予定か。たのしみやで。

168:デフォルトの名無しさん
20/02/06 00:10:26.01 UIZEnib+.net
perlの最新本って、これくらいだろ
初めてのPerl 第7版 2018/01/20
Effective Perl 第2版 2015/02/17

169:デフォルトの名無しさん
20/02/06 00:14:16.79 m/3X75FJ.net
クリスマスまでにはperl6の本が山のように出版されるからな

170:デフォルトの名無しさん
20/02/06 00:24:20 T14/xjtC.net
ドラマ「3000回目のクリスマス」

171:デフォルトの名無しさん
20/02/06 00:30:59.99 6QnB4wyK.net
Perl6無くなったんじゃなかったっけ?

172:デフォルトの名無しさん
20/02/06 14:10:21 EPBtHi1S.net
ちっちゃくRakuって書くんじゃない?

173:デフォルトの名無しさん
20/02/10 22:55:04.23 hYCIpnsp.net
非決定性有限オートマトンは決定性有限オートマトンに変換できる
ていうか両者の能力は同じ(正規言語止まり

174:デフォルトの名無しさん
20/02/10 23:09:15.59 O7nANUNm.net
ゲーデル?

175:デフォルトの名無しさん
20/02/11 08:07:12 RnNFx+rl.net
んまーできると言っても状態数の爆発を伴うこともあるので
非決定性有限オートマトンのままにしといて入力が来たときに探索(バックトラック)で解決、
というのもアリっていやーアリ

176:デフォルトの名無しさん
20/02/11 17:49:46.25 ix+UlUL8.net
名前変えたんだよね?やっぱ違いがありすぎて紛らわしいから変えたのか?

177:デフォルトの名無しさん
20/02/11 17:50:45.15 ix+UlUL8.net
すまん。リロード忘れて間に他の書き込みが挟まった。Perl6の話ね。

178:デフォルトの名無しさん
20/02/11 18:26:47.40 FJnR5oDj.net
ロゴもどうなんだ

179:デフォルトの名無しさん
20/02/11 22:24:33 kUx05S+X.net
>>176
少なくとも、もうPerlでは無いと言うことだ
Perlの系譜にある別言語だね

180:デフォルトの名無しさん
20/02/12 01:53:33 CB9IiDBv.net
YouTuberは「最強の職業」である理由。
URLリンク(www.youtube.com)
【事例付き】YouTuberは最強の副業である件について。
URLリンク(www.youtube.com)
【初心者向け】YouTubeの始め方・稼ぎ方を徹底解説!
URLリンク(www.youtube.com)
「YouTubeなんていつか稼げなくなる」という主張を論破する。
URLリンク(www.youtube.com)
収益化から丸1年!YouTubeでいくら稼いだか公開。
URLリンク(www.youtube.com)
その動画で月商○○万!? YouTubeで稼ぐ裏技的アプローチ。
URLリンク(www.youtube.com)
【貧者の工夫で戦え】ガラケーだっていい。YouTube始めるのにパソコンはいらない!
URLリンク(www.youtube.com)
【第一回】SNS、YouTube、ブログで稼ぐ方法を、丁寧に解説します!
URLリンク(www.youtube.com)

181:デフォルトの名無しさん
20/02/12 07:13:33 ZjDcS8oe.net
元から別言語定期

182:デフォルトの名無しさん
20/02/12 10:59:57 urwrbVLd.net
Python もそのくらいやって欲しい。

183:デフォルトの名無しさん
20/02/12 16:01:22.42 SF/q3PcI.net
Rakuは設計当初からオプショナルな型システムあるし
numpyっぽい操作が言語組み込みだったり
いろいろ早すぎた

184:デフォルトの名無しさん
20/02/13 01:14:31.03 on7ESczL.net
当初はすごいと思ったけど今見ると糞仕様だな

185:デフォルトの名無しさん
20/02/15 12:59:07.78 8m1Cr/X/.net
ハッシュの配列とかも簡単にできるもんね。
perlで作ったプログラムをC++で作り直すと思うとゾッとするw

186:デフォルトの名無しさん
20/02/15 14:49:16 av6eWd5V.net
ハッシュの配列とかスクリプト言語の類ならどれも同じようにできる。
Perlがだめなのは、スカラとリストの二つが存在することだな
同じ書き方をしても、使い方で意味が変わってしまう。
変わるだけならともかく違う解釈で動いてしまうからバグのもとに鳴る。

187:デフォルトの名無しさん
20/02/15 16:00:24.43 CBuE7ub7.net
>>186
リストは使わずに全部リファレンスでやった方がいろいろ安全だよ

188:デフォルトの名無しさん
20/02/15 16:25:27.75 33mO6l2/.net
なるほどそうかもしらん

189:デフォルトの名無しさん
20/02/15 18:59:30.30 jU+J++ht.net
$aと@aが区別されるので調子に乗って、
$a->[0][0][0] と一緒に $a も使ってバグる

190:デフォルトの名無しさん
20/02/16 20:31:14 7RTwZ9VV.net
まあ、自分で作るには兆便利だけど人のプログラムの修正やメンテはやりたくないなw
やっぱ、C言語ぐらい厳しくないとプロ用は無理だよね。

191:デフォルトの名無しさん
20/02/17 00:50:46 qx2LCmQN.net
Cは厳しさが足りない!

192:デフォルトの名無しさん
20/02/17 09:02:59 3xf/X3D3.net
他人が書いたものばかりでなく、1年前ぐらいに自分が書いたものを
修正しようとして、「なにやってんの?これ」と思う。
自分自身のために、「しつこいぐらいにコメントを入れる」を心がけてるよ。

193:デフォルトの名無しさん
20/02/17 10:26:17 DZOr9dsV.net
それ以前にコメントがなくてもわかるようなコードにしてるよ

194:デフォルトの名無しさん
20/02/17 13:13:07 ZZZ2hHJ7.net
マクロなコードは読んで意味がわかるものにするのは当然として
コメントはビジネスロジックと言うか、フローの説明じゃね

195:デフォルトの名無しさん
20/02/17 13:17:02 5usMQUGr.net
書いてあることを説明する必要はない。
コメントで書くのは、なぜこんなフローにしたかだ

196:デフォルトの名無しさん
20/02/17 13:21:56.88 ZZZ2hHJ7.net
ミクロだわ恥ずかしい(´・ω・`)

197:デフォルトの名無しさん
20/02/17 15:20:38 wTmXuXv8.net
一見すると何やってんだか分からなくてもよく辿るとスゲエなこれ天才じゃねって思うことある
自分が書いたんだけどね

198:デフォルトの名無しさん
20/02/17 20:40:48 Y4S6wB9m.net
書くのも読むのも全然困らないようなコードしか書かないのが理想

難解な処理は、きっともっとシンプルに解決できる

199:デフォルトの名無しさん
20/02/17 22:34:20 qx2LCmQN.net
現実はそうではない。

200:デフォルトの名無しさん
20/02/18 20:13:13 55IHv/fO.net
my @result = grep !$temp{$_}++, @list;

凄げーよね、@listをuniqにソートするコードだって。
パールならではだよね。
普通なにしてるかわからんよw

201:デフォルトの名無しさん
20/02/18 20:25:02 2VKhUmei.net
それは慣用句なので割と判る
コメントくらい付けるけど

202:デフォルトの名無しさん
20/02/18 20:32:09 KQgsUf00.net
result = list(set(LIST))

pythonのほうが圧倒的に簡単

203:デフォルトの名無しさん
20/02/18 21:09:43 lAgti/Dg.net
>>200
これでなんでソートされるの?

204:デフォルトの名無しさん
20/02/18 21:10:15 Z1cJ/QMX.net
>>200
それじゃあソートできてないだろ

my @result = sort grep !$temp{$_}++, @list;

205:デフォルトの名無しさん
20/02/18 21:32:52 v/AIhdlf.net
>>202
sort 使わずに sort できるなんて凄いな。

206:デフォルトの名無しさん
20/02/18 21:34:51 55IHv/fO.net
>>203
>>204
ゴメンソートは関係無かった。

uniqしたくて、検索したらこれが出てきたんだけど、自分で作るなら
for文で回してif文でチェックしてpushで配列に入れる。まあ、どんな言語でも動くやつね。

パッとこのコードが書けるんならいいけど、ここで時間を掛けたくないよね。

207:デフォルトの名無しさん
20/02/18 21:48:33 3v1Ek71E.net
普通のfor文で書けばよくね?w

208:デフォルトの名無しさん
20/02/18 21:53:35 2VKhUmei.net
機能がはっきりしてるから、sub uniqか何かを作って言語仕様かのように書く
きっと既にあるから、コピペで済む

209:デフォルトの名無しさん
20/02/18 22:00:21.17 3v1Ek71E.net
まあ余程の理由がない限り普通はList::Util使うね

210:デフォルトの名無しさん
20/02/18 22:14:59 2AC9Ct1n.net
ワンライナーカッケー病なんだろ

211:デフォルトの名無しさん
20/02/18 22:20:53 KQgsUf00.net
ハッシュを使ってカウントするなんてperlの定石なんだが
入門書のハッシュ解説で必ず載ってるぞ

212:デフォルトの名無しさん
20/02/18 23:17:41.56 aJeTcUgK.net
>>209
普通は>>204でしょ
モジュールは精査して本当に必要なものしか入れない
まあ現場次第だと思うが

213:デフォルトの名無しさん
20/02/19 00:10:20.47 XDqysw2e.net
>>200
Rubyだとuniqが使えるが配列の集合演算でもできる。
result = list | []

214:デフォルトの名無しさん
20/02/19 00:43:04 6o0SSmsW.net
実装は面白くても実際の所普段の仕事では
わかりやすいインターフェースの関数にするから
そういう点で差はでないというね。

215:デフォルトの名無しさん
20/02/19 01:02:36 mEonuRdN.net
>>214
PerlやRubyなら、わざわざ関数にはしないかな。
その場でハッシュにつめてキーだけ使うとかかなりふつうだから。

216:デフォルトの名無しさん
20/02/19 01:53:16.69 IHihvCy5.net
ここ人いたんだ

217:デフォルトの名無しさん
20/02/19 02:27:13 +yXfQCpG.net
オワコンだとかすたれた言語だとか言われるけどまだまだ使われてるから

218:デフォルトの名無しさん
20/02/19 04:28:09.35 UqnCT+lt.net
>>200
いや。わかる。
君もそのうちわかるようになるよ。

219:デフォルトの名無しさん
20/02/19 05:39:50.97 6o0SSmsW.net
>>215
そしてコメント書くぐらいなら関数にしろ

220:デフォルトの名無しさん
20/02/19 09:01:28.79 pJACNDga.net
他人にわかってもらいたくないんだろう。

221:デフォルトの名無しさん
20/02/19 09:31:49.80 oZi5GQ/y.net
ほら、こんなコードで実現できるんやで、
なにやってるか一見わからんやろ
説明しよか?
みたいに言いたくなったら、それは可読性が悪い証拠

222:デフォルトの名無しさん
20/02/19 12:23:16.28 CZsThdPw.net
Perl慣れしていない人の事を考える必要があるなら
標準モジュールの List::Util で uniq を使えばいいし、
URLリンク(perldoc.perl.org)
何らかの理由で標準モジュールや XS が使えないなら
Pure-perl 実装を CPAN から拾ってくればいいし、
URLリンク(metacpan.org)
実際 List::Util::PP::uniq() の中身はその手法だぞ。
URLリンク(metacpan.org)
sub uniq (@) {
  my %seen;
  my $undef;
  my @uniq = grep defined($_) ? !$seen{$_}++ : !$undef++, @_;
  @uniq;
}

223:デフォルトの名無しさん
20/02/19 16:51:28 /J962Gym.net
perl使い生きてた

224:デフォルトの名無しさん
20/02/19 18:36:12.61 X6PQVyJY.net
勉強になるというか、どこで学んだの

225:デフォルトの名無しさん
20/02/19 19:52:56.93 SoQYbBiO.net
>>219
書かないから心配するな!
1+1と同じレベルだからな!

226:デフォルトの名無しさん
20/02/19 20:07:21 pJACNDga.net
そういう思想の馬鹿しかおらんからperlは廃れたんだよ。

227:デフォルトの名無しさん
20/02/19 20:07:27 zh3CM0eN.net
if (defined $table{$var}) {
 $var = $table{$var};
}

みたいな処理
「何か」に対して判定した結果に従ってその「何か」を採用する

何かを2回書くのが嫌な時の逃げ方は何だろう

228:デフォルトの名無しさん
20/02/19 20:12:42 1DPeZovD.net
リストの要素数を得るために空リストに代入するのも慣用句と読んでいいかな?
$n = (() = <*>);
みたいの。

229:デフォルトの名無しさん
20/02/19 21:01:35 zh3CM0eN.net
要素数なんてどうせループにしか使わないので、
そんなのを取得しない解決がきっとエレガント
pythonの何でもイテレータ思想はきっと正しい

230:デフォルトの名無しさん
20/02/19 21:35:36 bGX6osz8.net
>>227
これはあるね しばし考えるんだけど結局一時変数を使う
構造によっては$_が使える時もあるんだけどまれだなあ

231:デフォルトの名無しさん
20/02/19 21:45:00.08 mEonuRdN.net
>>226
じゃあRubyやらC#やらも滅びるんやな。w
ハッシュのある言語ではあたりまえのイディオムやろが。

232:デフォルトの名無しさん
20/02/20 00:34:37 bivTkZxZ.net
まあ最近の言語は便利な標準メソッド呼べば終わりって感じだからね
Perlは標準モジュールの範囲だけでやろうとすると結構面倒

233:デフォルトの名無しさん
20/02/20 00:35:55 1VYpL0NG.net
スレに人が来ていてオジサンうれしいよ

234:デフォルトの名無しさん
20/02/20 01:29:24 bivTkZxZ.net
最近はPerlのことを喋ると謎の軍団が叩きに来るからな
ネット上で喋れる場所がなくなった
迫害されてる気分

235:デフォルトの名無しさん
20/02/20 13:15:43.08 fXEOX4Gg.net
Perl/Tk は使い物にならん。プログラムが大きくなると動かないでやんのw
Perl/Qt を推進していくべき。
ここの人はPerlでGUIを使ったりしてる?

236:デフォルトの名無しさん
20/02/20 15:23:29 Gm5IubjH.net
Windows限定だが、Win32-GUIを使ってるよ。
インストールして、次のバッチファイルを走らせると、
細かい具体例のデモが見れる。
C:\Perl\site\bin\win32-gui-demos.bat

237:デフォルトの名無しさん
20/02/20 17:36:38 Nllb9nDe.net
>>231
そうではなくて独自の記号にコンテキスト毎に意味を詰め込む様な言語思想のこと言ってるんだがね。

238:デフォルトの名無しさん
20/02/20 18:47:26 CqCGFBWH.net
入力も出力もテキストで完結してるのがいい

と思ってたけど、最近excelデータを入出力に使い出した

239:デフォルトの名無しさん
20/02/20 20:33:42 0HRLUjae.net
短絡論理演算子を使うという方法もあるが、お気に召すかどうかは知らん。

240:デフォルトの名無しさん
20/02/20 20:44:08.31 CqCGFBWH.net
>>227の例だと
$var = $table{$var} or $var
で概ね動くけど、空文字列なんかが入ってた時に誤動作する
判別はdefinedしか無いとして、それでも書ける短絡評価とは

241:デフォルトの名無しさん
20/02/20 21:36:24.51 uxa6Suua.net
defined-or使うだけじゃないの?
$var = $table{$var} // $var;

242:デフォルトの名無しさん
20/02/20 22:00:38.63 0HRLUjae.net
アンカー入れ忘れたのによく分かってくれたな。ありがとう。

243:デフォルトの名無しさん
20/02/20 22:37:06 CqCGFBWH.net
そんな演算子知らん

244:デフォルトの名無しさん
20/02/20 23:16:35.88 NRacWxGd.net
null合体演算子は最近の流行りやぞ?

245:デフォルトの名無しさん
20/02/21 01:54:46.68 dQ0Yz//t.net
//流行ってる気がしない。
新しい機能を積極的に使う人はそもそもperlを使わないのではないか。
断固外氏のブログのネタにしかなってなさそう。

246:デフォルトの名無しさん
20/02/21 02:18:25 YvRUEPlL.net
5.8じゃ使えないからね
それだけで使わない理由になる

247:デフォルトの名無しさん
20/02/21 03:26:53.00 6/adwu75.net
細かいけど優先度は// > = > orだよ

248:デフォルトの名無しさん
20/02/21 03:54:06.99 6/adwu75.net
>>227と等価なのは>>241
この例はdefinedだったから適用できるのね
判定が任意だとするとやはり2度書くしかないかね 例えば
if ($table{$var} % 3) {
 $var = $table{$var};
}
perlは同一値への参照と解釈して2回読みにはいかないという気の利いたことはしないだろうね
エクセプション入ったら変わる可能性あるしね

249:デフォルトの名無しさん
20/02/21 03:58:30.72 6/adwu75.net
//=の逆バージョンあったらいいなとはたまに思うね
そこまで必要性ないという判断でないのだろうけども

250:デフォルトの名無しさん
20/02/21 07:05:24 TnPEnehp.net
$table{$var} が $_ に入るような無害な処理をしておいて、
$var = $_ % 3 ? $_ : $var
と等価なシンタックスシュガーで処理する
みたいなことができれば

251:デフォルトの名無しさん
20/02/21 09:05:21.00 KvZFDIbR.net
2回読みたくないというのがどういうレベルでの事か分からんが
ソースコードの見た目だけならサブルーチンに押し込めばどうとでも
#!/usr/bin/perl -w
use strict;
use Scalar::Util qw(looks_like_number);
sub dp {
  defined $_[0] ? "d[$_[0]]" : 'u[]';
}
sub if_true(&$$) {
  local $_ = pop;
  $_[1] = $_ if &{$_[0]};
}
my %table = ('' => 1, 0 => 2, a => 3, b => 4, c => 0, d => '', e => undef);
for my $var (sort keys %table) {
  print dp($var), dp($table{$var});
  if_true { looks_like_number($_) && $_ % 3 } $var => $table{$var};
  print " => var[$var]\n";
}

252:デフォルトの名無しさん
20/02/21 09:57:55 PzVMR7sv.net
サブルーチンとか甘え。謎の記号を使って魔法のようなコードを書くのがPerlの醍醐味。可読性は悪

253:デフォルトの名無しさん
20/02/21 12:24:11 TKnLlA6x.net
>>235
昔々 Perl/Tk 使おうと思ったが日本語対応が出来てなくて止めたことがある。
それ以来 Perl で GUI はやってない。

254:デフォルトの名無しさん
20/02/21 14:01:10.98 OOdvSVAe.net
絶対やらないけど
$_ % 3 and $var = $_ for $table{$var};

255:デフォルトの名無しさん
20/02/21 15:45:08.67 ooEapY6E.net
>>253
それ、5.6以前の話?記憶が曖昧だけど、utf8に対応した5.6あたりから、Tkで日本語使えたような気がするけど。

256:デフォルトの名無しさん
20/02/21 18:15:13 TKnLlA6x.net
>>255
忘れた。20年ぐらい前だったかな?

257:デフォルトの名無しさん
20/02/22 22:24:09.42 pvGxmVZm.net
裏でずっと何かしてるスクリプトを走らせておきたい
ActivePerlのウィンドウが出るのが嫌なので、wperlを起動してウィンドウを出さない
でも、wperlを起動する為のbatファイルのウィンドウがずっと出てる
batファイル以外のいい起動方法はないだろうか

258:デフォルトの名無しさん
20/02/22 22:46:33 KpqdZij5.net
>>257
start "" "wperl ..."

259:デフォルトの名無しさん
20/02/22 22:47:18 +QQ7ccWr.net
ショートカットでよくね?

260:デフォルトの名無しさん
20/02/22 23:01:19 pvGxmVZm.net
wperl以降を""で括ると動かないけど、無くせば動いた
これでサーバ監視ができる

261:デフォルトの名無しさん
20/02/23 06:57:52.64 6djC7Yo0.net
Linuxなら何も考えずにできるが・・・

262:デフォルトの名無しさん
20/02/23 07:18:43.14 u5LzmB/p.net
pingが通るようにしてしまえばwindowsでもそういうのは既にある

263:デフォルトの名無しさん
20/02/23 12:43:19 1MmoNroU.net
>>261
シェルからふつうに起動したら、親プロセスとの関連でトラブルが発生するところはどちらも同じ。
というか、むしろLinuxのほうがわかりにくくてひどい。
disownとかnohupとか知ってるか?

264:デフォルトの名無しさん
20/02/24 04:42:11.62 jrwZftYn.net
知ってるよ。

265:デフォルトの名無しさん
20/02/25 12:21:34 Z4NIrtJK.net
>>260
何か使い方間違ってない?
次のようなコマンドで、普通に通るぞ。
wperl.exe "C:\utp\foobar.PL" "C:\foo\bar.txt"

266:デフォルトの名無しさん
20/02/25 23:35:33.10 Vpd+P02x.net
>>265
>>258

267:デフォルトの名無しさん
20/03/05 09:29:31 hJr+GlCd.net
ブラウザでは普通に見られる楽天市場の商品ページ
(item.rakuten.co.jp/shop_mei/a012345/)を get 出来なくなった。
ユーザーエージェントやらリファラはイジってみたけど

268:デフォルトの名無しさん
20/03/05 12:43:29 eb4C0HQQ.net
active perl の ppm がなくなっていろんなモジュールが動かないのだが、困ってるの俺だけ?
ググっても誰も文句言ってないな

269:デフォルトの名無しさん
20/03/05 12:50:46.42 WFS2X5DF.net
>>268
>>142 でオレが文句を言ったが。
結局、一生5.22 を使い続けることにした。

270:デフォルトの名無しさん
20/03/05 14:56:24.55 NI6SkVuR.net
新しめのバージョン追ってる人はもう大半がactive perl捨ててstrawberry perlに移住したんじゃね

271:デフォルトの名無しさん
20/03/05 20:36:47 HImUaDHG.net
つい最近ppm使ったような

272:デフォルトの名無しさん
20/03/06 00:11:57 Wxp9Lzi1.net
strawberry perl なら cpan インストーラ、もう少しまともに動くのか。
明日、試してみる。

273:デフォルトの名無しさん
20/03/06 08:49:13 20KFjtwq.net
URLリンク(community.activestate.com)

5.26以前なら、ppmは使えないことはないけど、「保守はしない」ということだね。

274:デフォルトの名無しさん
20/03/06 09:25:47 7w4EZP5c.net
>>268
WSLでLinuxそっくり環境の中で普通のPerl使うかOS丸ごとLinuxにしてしまえば悩むことはなくなる。

275:デフォルトの名無しさん
20/03/06 13:37:53 OG/dFmOQ.net
macという手も

276:デフォルトの名無しさん
20/03/06 13:53:08 YSIXaKl0.net
visual studioインストールして普通にビルドすれば?
Makefileちょっと変更してnmake叩くだけだよ

277:デフォルトの名無しさん
20/03/06 18:40:33.19 JNQJmFQ4.net
>>274
MSYS2のがええで。
WSLは別物。

278:デフォルトの名無しさん
20/03/06 19:44:20.68 /FgvtXba.net
もう Perl6 でラクになれよ

279:デフォルトの名無しさん
20/03/06 23:38:47.92 nrb1VEEF.net
strawberry perl をインストールしたけど、いろんなモジュールをまたゼロから入れなきゃいけないと思ったらヤル気なくなってとりあえず active perl に戻した。
次は active perl のディレクトリを調べて同じモジュールを strawberry perl にインストールするバッチファイル作んないと。

280:デフォルトの名無しさん
20/03/07 06:00:24.07 Q6Yn3ttH.net
>>279
そんな時代はもう終わってるぞ。
Windows版のPerlは使わない。WSLを使ってLinux版を使う
Perlのバージョンはplenvで管理し、いろんなモジュールは(俺が知っているときと変わってないなら)
cpanやcpanmあたりでプロジェクトごとに簡単にインストールする。
ソースコードをgitで管理してるとして、新しくプロジェクトに参加するなら、
plenvでperl入れて、git cloneしてモジュール入れるコマンド(cpanm?忘れたw)を叩くだけだ。

281:デフォルトの名無しさん
20/03/07 08:04:07.87 GE9TyCQC.net
で、どうやってwindowsから動かすんだ?

282:デフォルトの名無しさん
20/03/07 13:07:09 nxiojuUK.net
>>280
クリップボード使えない
アイコンダブルクリックで実行できない
オタクは自分の世界に閉じこもってシコシコやってろよバカ

283:デフォルトの名無しさん
20/03/07 18:28:23 jD3HBeI4.net
> クリップボード使えない
使える

> アイコンダブルクリックで実行できない
CLIでアイコンって何言ってるの?

284:デフォルトの名無しさん
20/03/08 01:15:11.77 DyTj6VlC.net
perlのスクリプトファイルが関連付けされてたらアイコンダブルクリックで実行できるんだけどね

285:デフォルトの名無しさん
20/03/08 01:34:31 rEU5WeDw.net
>>283
>>284
流れ的にWSLの話やぞ?

286:デフォルトの名無しさん
20/03/08 01:44:53 DyTj6VlC.net
>>285
勝手に流れ変えるなよw
>>280がwslって言いだしてwslじゃ不便もあるって話だろ?

287:デフォルトの名無しさん
20/03/08 05:59:45 P20sq25k.net
>>284
何が不便なのかわからない。

関連付けの設定をするのが面倒な ”だけ” か?
ならやっぱりWSLでいいだろ。

関連付けの設定方法がわからないんですは
プログラマやめれのレベルだからな

288:デフォルトの名無しさん
20/03/08 06:00:52 P20sq25k.net
>>286
だからWSLでクリップボード使えるし、
関連付け設定を自分でやればWSL上のスクリプトを動かせる

289:デフォルトの名無しさん
20/03/08 07:36:51.62 nyv63FmX.net
explorerから.plファイルを起動すると、カレントディレクトリのファイルに対して処理、
みたいなこともできる?

290:デフォルトの名無しさん
20/03/08 08:33:18.06 P20sq25k.net
できるだろうな。plファイルだけでできるかもしれんし、
簡単なラッパースクリプトが必要になるかもしれんが大した問題じゃない。
Windows特有の問題にぶち当たることのほうが大変だから

291:デフォルトの名無しさん
20/03/08 08:55:09 nyv63FmX.net
readdir は何の文字コードで返ってくるの?

292:デフォルトの名無しさん
20/03/08 09:09:34.43 P20sq25k.net
OSは文字コード変換なんてことは行わない。
そんなものが行われるとしたら、それはお前が
使ってる言語とライブラリがやってる。
ようはお前はPerlを知らんのだ

293:デフォルトの名無しさん
20/03/08 09:19:17.63 nyv63FmX.net
答えられなくなるとキレるっていうw
cygwinとの互換性で困った問題いろいろは起きそうな感じだな
win8.1のサポートが終わった頃に思い出したら使ってみよう

294:デフォルトの名無しさん
20/03/08 09:27:52.75 P20sq25k.net
知らないやつほど他人のせいにする。

295:デフォルトの名無しさん
20/03/08 11:23:41 2fZbJlty.net
全部 emacs の中でやれば実質的にクリップボードは使えるし
実行も emacs の中でできる。マウスを使わずにキーボードだけで
すべて完結するが

296:デフォルトの名無しさん
20/03/08 22:14:47 z5WqTo29.net
windows使っててマウス使わないなんてありえん

297:デフォルトの名無しさん
20/03/08 22:39:04 gXtOMf8r.net
WSLってクリップボード使えるの?
use Clipboardでいける?
今はどうなってるか知らんが知らんがcygwinは無理だったんで/dev/clipboard読み書きするラッパー書いてたな

298:デフォルトの名無しさん
20/03/09 14:08:24.97 OgnIoX0o.net
>>296
マウスを使うのは権利であって義務ではないからなあ
ゆっくりとプログラミングをしたいのてあればどうぞご自由に

299:デフォルトの名無しさん
20/03/09 14:59:05 eblk0ZGB.net
さすがにキモイw

300:デフォルトの名無しさん
20/03/09 19:42:54.58 aF4+X/eL.net
>>288
これマジ?
エクスプローラからWSL上のperlファイルが見えてダブルクリックでWSLのperlで実行できんの?

301:デフォルトの名無しさん
20/03/09 21:51:11.95 1P2a1qpP.net
無理でしょ
それぞれに違うファイルシステムになってる
参照はできるようになってるというだけ
windows上の/usr/binって何だよ

302:デフォルトの名無しさん
20/03/09 22:34:27 aF4+X/eL.net
だよね
ちょっと信じて損した

303:デフォルトの名無しさん
20/03/09 23:01:39.93 d25zd4do.net
アホが見〜る〜ブタのケ〜ツ〜

304:デフォルトの名無しさん
20/03/10 01:54:02 Lezaa9m7.net
>>300
> エクスプローラからWSL上のperlファイルが見えて
普通ほぼすべてのファイルが見える
見えないのは/procとか/sysとか特殊なものだけ

> ダブルクリックでWSLのperlで実行できんの?
ファイルが見えてるんだから当然ダブルクリックできる。
もちろん関連付けは必要だがな。
それをWSL内で実行するのもWSLを使わずに実行するのも
関連付けの設定次第

305:デフォルトの名無しさん
20/03/10 01:55:43 Lezaa9m7.net
ググれば普通に見つかる

Windows Subsystem for Linux でダブルクリックで sh ファイルを実行する
URLリンク(dskjal.com)

Windows 10のbashのコマンドをGUIから起動させるには?
URLリンク(kako.com)

306:デフォルトの名無しさん
20/03/10 02:35:30.61 iN6KW/Ct.net
WSL2は、Windows側のファイル属性とかちゃんとふつうにあつかえるようになったんか?
WSL1のときは完全別物で、全然ダメやったが。

307:デフォルトの名無しさん
20/03/10 03:13:18 8QcyJ6p0.net
WSL1もWSL2も同じ。Linuxのファイル属性として正しく扱えるようになった。
Windowsのファイル属性をLinuxアプリが正しく扱えることはありえないから
逆の発想でLinuxとして正しく扱える方向に舵をとった。
Linuxアプリから正しく扱えないなら意味ないでしょ?

308:デフォルトの名無しさん
20/03/10 03:17:19 8QcyJ6p0.net
そもそもファイル属性はWindowsの方が高機能で
Linuxは、いろいろ拡張入れたら別だが
基本のファイル属性はUNIX初期の頃から変わって無くてかなり貧弱。
Windowsの高機能なファイル属性をそのLinuxにマッピングすることは出来ない。
逆にLinuxのファイル属性を全てWindows側に持たせることは可能
こうすることで全てのWindowsのファイルをLinuxで正しく扱えるようになった。

309:デフォルトの名無しさん
20/03/10 04:18:19.87 /bE8vLVb.net
漏れは、Ruby のバージョンマネージャー、rbenv をWSL, Ubuntu 18.04 に入れた。
これで、Linux 側に、好きなバージョンのRubyを入れられる
Windows 10 側には、VSCode を入れて、拡張機能のRemote WSL を入れる
これが基本!

310:デフォルトの名無しさん
20/03/10 04:23:54 qHN38Ccx.net
windowsでも開発できそうだなー

311:デフォルトの名無しさん
20/03/10 12:00:40 tTiB+rjP.net
DBIの動作についてお聞きしたいことがあります。

my $dbh = DBI->connect(接続情報);
my $sql = 'パラメータ付きクエリ';

my $ret1 = $dbh->selectrow_arrayref($sql, undef, 'A');
my $ret2 = $dbh->selectrow_arrayref($sql, undef, 'B');

my $sth = $dbh->prepare($sql);

my $ret3 = $dbh->selectrow_arrayref($sth, undef, 'A');
my $ret4 = $dbh->selectrow_arrayref($sth, undef, 'B');

このようなコードで$ret1と$ret2には'A', 'B'それぞれのパラメータを使用した結果が入るのですが、$ret3は$ret4と同じ'B'を使用した結果になってしまいます。
selectrow_arrayrefに同じステートメントハンドラを渡して複数回実行すると、リファレンス実体が最後に実行した結果で上書きされてしまうような雰囲気でした。

Perl 5.10.1 & DBI 1.609の環境と、Perl 5.16.3 & DBI 1.642の環境で試してどちらも同じ結果になったのですが、こういうものなのでしょうか…。

312:デフォルトの名無しさん
20/03/10 13:47:10 nryxofxk.net
>>305
アホか?
バッチファイルでwsl起動してその中で実行してるだけじゃん
レジストリ編集の方もパワーシェルに引数渡してwsl起動してるだけだ
これじゃあcygwin使ってやるのとなんら変わっとらん

313:デフォルトの名無しさん
20/03/10 14:03:39.54 0m+9gBGV.net
>>312
あのさ、おまえ頭悪いよ?
目的を一番ラクに実現する方法が
目の前にあるというのにそれを使わないのはアホだろ
ネイティブのPerlを使えばいい
今更PerlのWindows移植版なんかいらんよ。
Windows移植版なんてcygwinと何も変わらん

314:デフォルトの名無しさん
20/03/10 15:17:13.04 qHN38Ccx.net
>>311
試してみたけど確かに同じ配列が変えるね
オライリーのDBI本見たらそう書いてあった
selectrow_arrayって方を使ってリストコンテキストで受けるといいみたい

315:デフォルトの名無しさん
20/03/10 15:22:16 tTiB+rjP.net
>>314
やはりそうですか…
selectrow_hashrefを使うと$sqlでも$sthでも'A', 'B'それぞれの結果が返るので、selectrow_arrayrefだけ期待と違う動作をしている気がします。(バグ?)

316:デフォルトの名無しさん
20/03/10 15:28:19 qHN38Ccx.net
>>315
バグというか仕様だと思う
作者の書いたオライリー本にも書いてあったから意図的なはず
今更変更できないからこのままになってるんだろうね

317:デフォルトの名無しさん
20/03/10 15:39:16 tTiB+rjP.net
>>316
なるほど。
それでは今後、selectrow_arrayrefは注意して使うようにしたいと思います。
ありがとうございました。

318:デフォルトの名無しさん
20/03/10 15:58:50 SCW8qISh.net
>>313
へー
バッチファイル作ったりトリッキーな関連付けまでしないと動かないのが一番楽な方法ねー
cygwinで全く同じことができるしwin移植版perlならそのまま実行できちゃうんだけどね
ところでエクスプローラからどうやったらwsl内のファイルが見えるんだい?

319:デフォルトの名無しさん
20/03/10 16:50:47.58 lAAHr9o2.net
>>311
selectrow_arrayref は最初の1行しか返さないからということはない?

320:デフォルトの名無しさん
20/03/10 16:52:18.68 lAAHr9o2.net
ぐえ。リロード忘れたらとっくに話が終わっていて間に沢山の書き込みが

321:デフォルトの名無しさん
20/03/10 20:10:42.81 UzsfbeET.net
BOOKOFFに100円で売っていたPerl/CGI辞典によると、
selectrow_array:先頭行
selectcol_arrayref:最初のフィールド
selectall_arrayref:すべて

322:デフォルトの名無しさん
20/03/10 23:18:16.01 gGR9Cwad.net
>>318
Windows版Perl使って
Windowsで動かないーってやるより、
安心して使えるバッチファイルを使ったほうがシンプル

323:デフォルトの名無しさん
20/03/10 23:32:00 Z32YaYnf.net
いやいやw
WSLならバッチファイルなんか使わなくてもエクスプローラーからダブルクリックでWSL上のスクリプトを直接実行できるんでしょ?
やり方教えてよ
windows版perlならバッチファイルなんか使わなくてももちろん出来るからねw
それとwindows版perlだと何が動かないのかな〜?

324:デフォルトの名無しさん
20/03/10 23:37:16 9jB6JpZx.net
バッチファイルとかっていったい何歳の爺さんなんだよ

325:デフォルトの名無しさん
20/03/10 23:42:56.03 tP5E2IWo.net
>>323
普通に、wsl.exe+スクリプトファイルのショートカットを作るだけ

326:デフォルトの名無しさん
20/03/10 23:51:09.20 Z32YaYnf.net
>>325
やってることはバッチファイルと同じじゃん

327:デフォルトの名無しさん
20/03/11 00:05:26.96 5FVYO8f6.net
Ruby でも、MSYS2/MINGW は、日本語でバグル・日本語入力できない。
一方、WSL は、日本語でバグらない!
WSL が出たから、次第に、Windows 版のRuby Installer は、使われなくなっていく
それに、VSCode の拡張機能、Remote WSL が出たから、
Windows 10 では、Ubuntu 18.04 が標準になる
プロジェクトも、Windows 側のC: ドライブじゃなくても、
Linux 側に置いて、Remote WSL でアクセスできるので、本番環境に近い
Windows/Linux のファイルのアクセス権限の違いに、困らない!

328:デフォルトの名無しさん
20/03/11 00:38:23.60 3jaBr8Hp.net
ルビーならそうだろうねw

329:デフォルトの名無しさん
20/03/11 00:53:43 FWSDJbu9.net
>>326
それで実現できるだろ
しかも完全にちゃんと動くPerlで

330:デフォルトの名無しさん
20/03/11 01:05:10.04 zcf0ykb5.net
ハア?
WSLはwindows版perlより楽できるんじゃないの?
なんでわざわざそんな面倒なことすんの?
それとエクスプローラからWSLのファイルが見えてそれをダブルクリックで実行できるって話はどうなったの?

331:デフォルトの名無しさん
20/03/11 01:17:13 M00P+dL8.net
WSLはあくまでLinux的システムなアプリであって、Windows側とはやっぱり高い壁がある、と思っとくほうが安全やろ。

332:327
20/03/11 01:47:27 EKM5ywjJ.net
Ruby なら、WSL から、1-liner で、
Rubyで作られた遅いウェブサーバー、WEBrick が起動する

index.html が、Windows 側のC: ドライブにあるとすると、
cd /mnt/c/〜 で、Windows側へ移動して、

または、index.html が、linux 側のドライブにあるとすると、cd で、そこへ移動して、

ruby -run -e httpd . -p 8080

これで、Windows側のブラウザで見れる
URLリンク(localhost:8080)

つまり、プロジェクトが、Windows/Linux側のどちらにあっても、Windows側のブラウザで見れる

333:デフォルトの名無しさん
20/03/11 02:27:57 M00P+dL8.net
Webサーバーを経由すれば、ファイルが地球の裏側にあってもふつうに見れるなー。w

334:327
20/03/11 04:58:50 EKM5ywjJ.net
Linux 側のフォルダ内を公開した、Linux側のサーバーに対して、

Windows 側のブラウザのlocalhost で見れるんだよ!!

335:デフォルトの名無しさん
20/03/11 09:27:01 AZbrV/6V.net
>>319
>>321
返信ありがとうございます。
すみませんが、selectrow_arrayrefが最初の1行しか返さないということは知っています。
そうではなく、結果(リファレンス)を変数に入れてから再度同じステートメントハンドラでselectrow_arrayrefを使用すると、リファレンス実体の方が書き換わってしまうので、1回目の結果が失われてしまうということを言いたかったのですが…。
サンプルとして'パラメータ付きクエリ'と書きましたが、複数行を返さない単純な「SELECT ?」でも再現します。

336:デフォルトの名無しさん
20/03/11 09:44:35.82 LRW51TqV.net
なるほど。

337:デフォルトの名無しさん
20/03/11 20:46:52 M00P+dL8.net
>>335
同じ変数を使い回しまくって、パフォーマンスを落とさないためやないの?
GCのないPerlならたいしてかわらんやろけど。

338:デフォルトの名無しさん
20/03/11 21:49:34.54 gWo/n1eo.net
>332
ウェブサーバーならbusyboxでよくね?w
数MBのメモリで動作する

339:デフォルトの名無しさん
20/03/11 23:17:22.77 k/ve+D91.net
>>335
クエリ結果を保持してるのはステートメントハンドラオブジェクトの方でパフォーマンス優先のためにその内部変数のリファリンスを返すのが*_arrayrefって考えればいいかな
んでselectrow_arrayrefの第1引数に文字列を渡したときは内部で毎回prepareされるので後から実行しても書き変わらないと

340:デフォルトの名無しさん
20/03/12 01:40:41 i54BE1kH.net
>>304
よくもこんな大嘘をw

341:デフォルトの名無しさん
20/03/12 01:44:08 NTVlQfwP.net
第一引数に$sth渡せるんだって思ったね
文字列しか渡したことないし
Perlはいまだに知らないことがある

342:デフォルトの名無しさん
20/03/12 09:49:43 05BordF4.net
>>339
そうですね。
DBI.pmで第1引数がリファレンス(ステートメントハンドラ)ならそのまま使用、そうでなければprepareしているところまではわかったのですが、その後の流れは同じのようでしたし、Driver.xstまで解析するのはやめておきました(^^;)

343:デフォルトの名無しさん
20/03/12 16:51:12.87 XWa7Kkjq.net
>>340
そういう時は
How dare you?
と言う。

344:デフォルトの名無しさん
20/03/12 16:52:32.93 XWa7Kkjq.net
あ、記号まつがえた。

345:デフォルトの名無しさん
20/03/12 17:18:02.38 +5N6GCV3.net
関連付けの仕組みを知らない人がいるのかな?
単にレジストリに、この拡張子はこのコマンドで実行するって書くだけなんだけど

346:デフォルトの名無しさん
20/03/12 17:18:57.67 +5N6GCV3.net
つまりcmd。exeから実行できるものは全て
同じやり方で関連付け作れるってことね

347:デフォルトの名無しさん
20/03/12 18:12:19 XQbCK6u3.net
それはただの起動のしくみでしかない。
実際の動作は高い壁で分離されてるといって過言でないものをいっしょくたにはできまい。

348:デフォルトの名無しさん
20/03/12 18:48:34 U4j5Oz8o.net
>>347
理由は?

349:デフォルトの名無しさん
20/03/12 18:49:23 U4j5Oz8o.net
そもそもダブルクリックできるなんて
起動の仕組みなんだから、起動の仕組みでしか無いと言われても
その話をしてるんですよとしか言いようがないがw

350:デフォルトの名無しさん
20/03/12 19:40:41 kpO7RyNn.net
だからエクスプローラからWSLにあるファイル見る方法教えてくれってw

351:デフォルトの名無しさん
20/03/12 19:47:21 IWxDU6vM.net
それは見れる \\wsl$
エクスプローラからしか見れないのが問題

352:デフォルトの名無しさん
20/03/12 19:57:44 MY0SLzQz.net
グレタちゃんもアナルパールを使ってます

353:デフォルトの名無しさん
20/03/12 20:49:28 U4j5Oz8o.net
ダブルクリックてエクスプローラーの話じゃん
エクスプローラーから見れるなら、ダブルクリックして開ける。
その証拠にテキストファイルだって開けるだろ

354:デフォルトの名無しさん
20/03/12 22:39:56.96 MY0SLzQz.net
グレタちゃんに僕のパイソンを貸してあげたい

355:デフォルトの名無しさん
20/03/14 18:16:47.41 jx2yED/o.net
active perlのcryptのsaltにasciiでない文字を渡すと止まるんだけど何で?

356:デフォルトの名無しさん
20/03/14 19:34:39.97 RPa5riWU.net
WSLつかえ

357:デフォルトの名無しさん
20/03/14 22:58:59.61 eh0BX5+5.net
>>355
理由を聞いてどうするんや?
文字コードとかややこしいから、対応してないんやろ。

358:デフォルトの名無しさん
20/03/14 23:16:24 5TZ0Uf7y.net
分からんのなら黙ってろやチンカス

359:デフォルトの名無しさん
20/03/14 23:39:11.11 9VuyfYoc.net
暗号化って、base64 とかだろ。
ascii だけだろ
Ruby なら、こういうやつだろ
module SecureRandom
URLリンク(docs.ruby-lang.org)

360:デフォルトの名無しさん
20/03/14 23:44:18.11 jx2yED/o.net
keyの方は何でもokなんだけどな

361:デフォルトの名無しさん
20/03/15 03:21:52.90 ey4TMar/.net
>>358
わかってもなにもできんくせに
ゴミクズ


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

1193日前に更新/240 KB
担当:undef