2ちゃんねる ■掲示板に戻る■ 全部 1- 最新50    

Perlについて

1 :デフォルトの名無しさん:2008/08/04(月) 20:58:41 .net
質問スレはあるけど、Perl自身について語るスレがないので、立てました。

544 :デフォルトの名無しさん:2011/10/07(金) 09:25:24.34 .net
てかこのスレの住人だってcpanmとかperlbrew使ってるの5人もいないだろ

545 :デフォルトの名無しさん:2011/10/07(金) 23:50:23.05 .net
>>544
知らなかったけど、知った今でもそれらは使わないよ。

cpanm ・・・ cpanみたいにモジュールをインストールする奴
perlbrew・・・Perのバージョンを切り替える奴

ざっと見た感じこういうものだと思うけど、
俺にかぎらず、ウェブアプリを作っている会社なら安定性重視だから
Perlを単体で入れることはまず無い。ディストリ標準のを使うだろう。
逆にどうしても特定のバージョンが仕えたいのなら、それに合わせてディストリを選ぶとかね。

Perlモジュールもディストリ標準のと言いたいところだけどそれじゃ足りない場合も多いね。
そういう場合は、パッケージを作ってインストールはもちろんアンインストールも簡単にできるようにするんじゃない?

うちはdebianを使ってるけどdh-make-perlを使ってcpanモジュールからdebianパッケージを作っている。一行で簡単に作れるし。
どこになにが入るのか把握しづらいcpan(cpanm)は使わない。

cpanmやperlbrewはフリー・シェアウェアのCGIアプリを作っているというのなら便利なんだろうけど、
そんなのプロならあまり使わないだろうし、ぶっちゃけ、その名前を出した時点で
あぁ、あんたは自社サーバーでシステムを動かしてサービス提供している側じゃないんだねと思った。

546 :デフォルトの名無しさん:2011/10/07(金) 23:54:31.16 .net
うわぁ

547 :デフォルトの名無しさん:2011/10/07(金) 23:59:38.41 .net
>>546
何か言い返したほうがいいぞw

548 :デフォルトの名無しさん:2011/10/08(土) 00:04:01.85 .net
cpanmはインストールしたけど、ほとんど使ってない。
perlbrewは使ってない。
local::libは使ってる。無いと死ねる。

549 :デフォルトの名無しさん:2011/10/08(土) 08:38:09.06 .net
うちはcpanmは使ってるな。リソース少なめの非力マシンなんで。
cpanと併用だけど。

550 :デフォルトの名無しさん:2011/10/08(土) 13:46:20.74 .net
>>530
オリジナルじゃないし座右の銘でもないな。
しかも最後、万人の感情論まで入っているぞw

551 :デフォルトの名無しさん:2011/10/10(月) 00:10:54.13 .net
cpanmやperlbrewの作者たちは僕の中でプロと思える存在だったんだけど世の中には兵がたくさんいるんだな

552 :デフォルトの名無しさん:2011/10/10(月) 01:22:29.43 .net
> cpanmやperlbrewの作者たちは僕の中でプロと思える存在だったんだけど
え?

cpanmやperlbrewが無益なものだとは言わないけど、
自分で好きなサーバーを選べないrootも持ってないそういう
ニッチな需要に対応するもので、
プロの間では使うことはまずない道具だろ。

技術的には、ネットからダウンロードして
パッケージに付いてるコマンド実行するのと
パスとディレクトリ変更するだけのものだし。



553 :デフォルトの名無しさん:2011/10/10(月) 01:40:11.10 .net
プロハープロハー

554 :デフォルトの名無しさん:2011/10/10(月) 02:29:19.58 .net
>>551
別にcpanmやperlbrewやその作者をdisっている訳ではなくて、
必要があれば使うしなければ使わないってだけの話でしょ。
すごいプロダクトならとにかく使わなきゃいけないって考えは変だろ。
>>552
> プロの間では使うことはまずない道具だろ。
んなこたあない。お前の「プロ」定義、歪んでるぞ。ものすごくシロウト臭い。

555 :デフォルトの名無しさん:2011/10/10(月) 06:01:08.40 .net
そもそも
> 自分で好きなサーバーを選べないrootも持ってないそういう
> ニッチな需要に対応するもので、
ここの認識から違う。
どっかの記事みてそう思っちゃったんだろうけど

556 :デフォルトの名無しさん:2011/10/10(月) 06:46:36.59 .net
>>555
なにが違うん?

普通にインストールすればいいだけじゃん。

557 :デフォルトの名無しさん:2011/10/10(月) 07:58:34.12 .net
>> 自分で好きなサーバーを選べないrootも持ってないそういう
>> ニッチな需要に対応するもので、
>ここの認識から違う。
1. cpanmは、コマンドcpanの代替であって、上記のニッチもへったくれも
 無いだろ。local::lib使えばroot云々無関係だし。perlbrewと切り分けろよ
2. 自分で鯖を選べてrootも持ってるが、perlの他バージョンの挙動を調べたい。
 冷やかしのガキを除けば、そっちの用途の方が多いだろ、perlbrewは。
3. perlbrew及び、それでインストールされるperlは、
 必ずしも$HOMEにインストールしなければならない物ではない。
 /usr/local以下に突っ込んで運用出来る

さて、どの意図でレスされたんだろう?それとも上述以外?


545氏に突っ込むのは徒労だと思うが、そもそも
>>544
> てかこのスレの住人だってcpanmとかperlbrew使ってるの5人もいないだろ
Encodeの使用者も少ないって言いたいなら、例が悪すぎる
core moduleと比較すんのにCPAN moduleを例に出すなよw
需要も重要度も全く次元が違う
おまけにJcode.pmの使用者は間接的にEncodeの使用者だ

558 :デフォルトの名無しさん:2011/10/10(月) 13:42:54.40 .net
>>557
cpanm(cpan)はアンインストールできないので
パッケージを作ったほうが優れている。

また他のperlのバージョンの挙動を調べたいのなら仮想マシン使う。
そんな環境がごちゃごちゃするようなやり方はしない。

559 :デフォルトの名無しさん:2011/10/10(月) 13:51:15.34 .net
プロ様お疲れ様っす!

560 :デフォルトの名無しさん:2011/10/10(月) 14:31:27.78 .net
>>558
> cpanm(cpan)はアンインストールできないので
ん? できるでしょ? ちょっと手間はかかるけど。
インストール時にパッケージ作る手間とどっちを取るか、って感じ?

561 :デフォルトの名無しさん:2011/10/10(月) 14:46:10.85 .net
パッケージを作るのは1行〜数行で終わる。

cpanのアンインストールは、モジュールによって
やり方が違い、make uninstallを備えていないのも多い。

562 :デフォルトの名無しさん:2011/10/10(月) 15:35:57.38 .net
そうか。
まあ基本的にアンインストールしないから関係ないや。
Perlのモジュールなんてインストールされてて困ったなんてことないしなあ。

563 :デフォルトの名無しさん:2011/10/10(月) 16:34:22.42 .net
>>562
そこがプロとアマの違いね。
今どのモジュールがどうやってはいったか把握してないでしょ?

アマなら動いていればいいじゃんで終わるんだろうけど、プロだとちゃんと環境を把握している。
(覚えているのではなく簡単に調べられるということ)
環境を把握しているから、なにかトラブルが起きた時その原因の切り分けが簡単にできる。

cpanモジュールをパッケージにしていれば、パッケージのバージョンアップで
なにか動作がおかしくなった時、今のバージョンを完全に綺麗な状態に消して古いバージョンを入れられる。

もしそうなっていなければ、今モジュール入っているんだっけ? 全部ちゃんと消したっけ?
あれ? なんか古いモジュールと新しいモジュールがごっちゃになってる。
インストールが途中でエラー終了したんだけど、今どういう状態になってるんだ?みたいな混乱が起きることになる。


564 :デフォルトの名無しさん:2011/10/10(月) 16:43:47.58 .net
データ解析系の人間からすれば、
debianでアプリ開発して移植先がSolarisだったらどうすんの?とか、
仕様書に「野良パッケージが便利だからdh-make-perl入れます」と書くのか?とか。
もうね、、、

その上で、自分はプロ!だからなあ。


565 :デフォルトの名無しさん:2011/10/10(月) 16:45:08.96 .net
ああ、「実際の運用時にはcpan使うだろJK」か。


566 :デフォルトの名無しさん:2011/10/10(月) 17:08:01.67 .net
納品先の鯖の保守契約自体は、他の会社(例えば、HPだの)にあった場合に、
そちらに依頼してモジュールのインストールしてもらわなきゃならない、
もしくは仕様書を渡してこちらでインストールなりをする。
鯖のrootにはそれだけの重みと柵がある、例えweb鯖でも。
それのに、気軽にプロなら、とか言ってくれるなよ。
どれだけ軽いrootだよ、お前様の鯖は。

perlbrewもcpanmもどうでも良くて、あんまりのレスについ書いちまった。


567 :デフォルトの名無しさん:2011/10/10(月) 17:11:08.43 .net
>>563
いやいや、むしろ"プロ"ならcpanで入れた分だってちょっと調べりゃ綺麗にアンインストールできるでしょ。
make uninstall なんか使えなくってもさ。
パッケージ作るかどうかなんてのは好みだから別に好きにすればいいと思うけど、
基本的にはアンインストールが必要になることなんて滅多にない場合は、
必要が生じた時だけちょっと手をかけてアンインストールすることにして、
インストール自体はcpanで済ませても問題ないじゃない。時間の節約にもなる訳だし。

まあ別に"プロ"じゃないけどね。あ、昔仕事でスクリプト書いたことはあったんでその時だけは"プロ"だったか。

568 :デフォルトの名無しさん:2011/10/10(月) 17:43:24.97 .net
> ちょっと調べりゃ

はい、その調べる手間が無駄です。

569 :デフォルトの名無しさん:2011/10/10(月) 17:56:21.01 .net
>>564
> 仕様書に「野良パッケージが便利だからdh-make-perl入れます」と書くのか?とか。
「野良パッケージが便利だからcpanで入れます」と書くのか?
お前の意見はどっちなんだ? 野良パッケージのインストールをするなってことなのか?
それはそれで有りだと思うよ。だが今の話とは関係ない。

今は野良パッケージを入れることが前提の話。
野良パッケージを入れる場合、cpanで入れてOSの安定性ぶち壊すのか、
それともパッケージにして管理された状態でモジュールを使うのか。
どっちが優れてるかなんて言うまでもない。
SolarisならSolarisのやり方でパッケージ管理するだけの話。


>>556
お前のほうが軽くね?
だって、モジュールのインストールは他の会社に頼む。
うちはモジュールのインストールはしない。そう言ってるわけでしょ?

つまり、お前の場合は、モジュールのインストールしない側の話であって
今話してるのは、モジュールインストールする側の話だよ。

わかりやすく言えば、root持ってないお前が頼むのがroot持ってる俺の会社ってわけだ。
モジュールのインストールという責任あることをcpan使って気軽にやるかよw

ちゃんとパッケージ作ってちゃんと管理する。これはディストリがやってるのと同じ方法だ。
なぜディストリはパッケージを使っているかその理由ぐらい分かるだろう。

570 :デフォルトの名無しさん:2011/10/10(月) 18:05:05.09 .net
厚顔無知


571 :デフォルトの名無しさん:2011/10/10(月) 18:50:17.18 .net
>>569
> 今は野良パッケージを入れることが前提の話。
えっ?いつからそんな前提の話に変わってたの?

> 野良パッケージを入れる場合、cpanで入れてOSの安定性ぶち壊すのか、
えっ?cpanで入れるとOSの安定性がぶち壊れるの?
コワ〜イ(><)

572 :デフォルトの名無しさん:2011/10/10(月) 18:55:09.29 .net
この手の「なにがなんでも自分が最後に勝ちたい」“プロ”とは絶対一緒に仕事したくないってことだけは確かだなw

573 :デフォルトの名無しさん:2011/10/10(月) 19:04:11.84 .net
>>571
> えっ?いつからそんな前提の話に変わってたの?

元は、cpanm使う → そんなの使わねーよ、パッケージ作れよ。が発端。

ちゃんとスレ読んでから出直し。

574 :デフォルトの名無しさん:2011/10/10(月) 19:06:51.87 .net
>>571
> えっ?cpanで入れるとOSの安定性がぶち壊れるの?
そうだよ。

cpanで入れるとモジュールの整合性がおかしくなる。
モジュールをパッケージで入れた(ディストリがパッケージで提供してる奴)
同じモジュールをcpanで入れた。さてどうなるか。
削除するとき、本当にちゃんと削除できたか、何かが残っていて
予期せぬことが起きる可能性だってある。


575 :デフォルトの名無しさん:2011/10/10(月) 19:23:10.53 .net
モジュールをパッケージで入れないから問題ない。

576 :デフォルトの名無しさん:2011/10/10(月) 19:25:59.06 .net
そういうときこそlocal::libだな

577 :デフォルトの名無しさん:2011/10/10(月) 19:34:20.56 .net
入れないじゃなくて、
入れられないの間違いでしょw
自分専用のマシン用意してもらえないとかで。

578 :デフォルトの名無しさん:2011/10/10(月) 20:33:05.15 .net
パッケージ管理の方こそ信用ならん。
インストールは全部makeで、Perlのモジュールはcpan。

579 :デフォルトの名無しさん:2011/10/10(月) 20:41:09.84 .net
>>570
なんで信用ならんの?

580 :デフォルトの名無しさん:2011/10/10(月) 21:16:17.19 .net
debianの場合だと
往々にして妙にバージョンが古くて
それがトラブルの元になったりするから
とか?

581 :デフォルトの名無しさん:2011/10/10(月) 21:34:07.52 .net
それはパッケージの問題じゃねーよw

582 :デフォルトの名無しさん:2011/10/16(日) 21:52:24.92 .net
プロでもアマでもインストールは手動で行ってこそ、把握や管理が楽になる

583 :デフォルトの名無しさん:2011/10/16(日) 22:18:05.00 .net
Encodeの使用者って少ないって本当?
ネットにも本にも紹介されてるんだけど、実際に現場で使われてる
のは確かに見たことないんだよね。

584 :デフォルトの名無しさん:2011/10/16(日) 23:23:37.06 .net
「プロ」の次は「現場」ktkr

じゃあ現場でEncodeの代わりに何使ってるんだよw

585 :デフォルトの名無しさん:2011/10/17(月) 00:25:08.22 .net
変換しないから何も使ってないktkr

586 :デフォルトの名無しさん:2011/10/17(月) 03:28:14.22 .net
文字コードが混在してるわけじゃないので使用してませんが?

587 :デフォルトの名無しさん:2011/10/17(月) 04:57:36.37 .net
それは
Encodeの使用者が少ない
んじゃなくて
Encodeが必要になるような局面が少ない
っていうことか。
それならわかる。

588 :デフォルトの名無しさん:2011/10/18(火) 05:02:53.39 .net
有用か無用の判断はともかく、ファイルハンドルからファイル名って取得出来ないのかしら?
Devel::Peek::Dump($filehandle) みたいに渡すとファイル名が表示されるから、ファイルハンドルから
ファイル名が取れるはずなんだけど Devel::Peek を読んでもまったく意味が分からないw

ファイルハンドルからファイル名を取得する方法またはサンプルとか知ってるからいらっしゃいますか?

589 :デフォルトの名無しさん:2011/10/18(火) 06:33:09.89 .net
自分の環境(Win7 64bit、ActivePerl5.8)ではファイル名が出ませんが、出力例を貼っていただけます?
SV = RV(0x30ea08) at 0x3621bb8
REFCNT = 1
FLAGS = (PADBUSY,PADMY,ROK)
RV = 0x26b548
SV = PVGV(0x36a0e38) at 0x26b548
REFCNT = 1
FLAGS = (GMG,SMG)
IV = 0
NV = 0
PV = 0
MAGIC = 0x2c6b68
MG_VIRTUAL = &PL_vtbl_glob
MG_TYPE = PERL_MAGIC_glob(*)
MG_OBJ = 0x26b548
NAME = "$filehandle"
NAMELEN = 11
GvSTASH = 0x26b428 "main"
GP = 0x36e33b8
SV = 0x26b638
REFCNT = 1
IO = 0x26b688
FORM = 0x0
AV = 0x0
HV = 0x0
CV = 0x0
CVGEN = 0x0
GPFLAGS = 0x0
LINE = 3
FILE = "a.pl"
FLAGS = 0x0
EGV = 0x26b548 "$filehandle"

590 :デフォルトの名無しさん:2011/10/18(火) 06:42:23.51 .net
>Devel::Peek::Dump($filehandle) みたいに渡すとファイル名が表示される
されないだろ


% perl -MDevel::Peek -le 'open $fh, q{<}, q{Foo.txt} ; Devel::Peek::Dump $fh'
SV = IV(0x7fb632829140) at 0x7fb632829148
REFCNT = 1
FLAGS = (ROK)
RV = 0x7fb632803ed0
SV = PVGV(0x7fb63283f830) at 0x7fb632803ed0
REFCNT = 1
FLAGS = ()
NAME = "$fh"
NAMELEN = 3
GvSTASH = 0x7fb632803d38 "main"
GP = 0x7fb632406e80
SV = 0x0
REFCNT = 1
IO = 0x7fb632804050
FORM = 0x0
AV = 0x0
HV = 0x0
CV = 0x0
CVGEN = 0x0
LINE = 1
FILE = "-e"
FLAGS = 0x0
EGV = 0x7fb632803ed0 "$fh"


591 :デフォルトの名無しさん:2011/10/18(火) 06:42:50.86 .net
かぶった、リロードすべきでしたorz...

592 :デフォルトの名無しさん:2011/10/18(火) 07:20:24.27 .net
予防線を張ってるのを百も承知で書くが、ファイル名なんざ
<>の時は、$ARGVで、open FHの時は自身が変数なりで
保持してるのに、何でファイルハンドルから取り出したがる人がいるのか不思議だ
<>が複数ファイルの場合、$ARGVは最初のファイル名と思い込んでた人もいたけど、昔。

593 :デフォルトの名無しさん:2011/10/18(火) 12:51:21.64 .net
すんません FILE の行をファイルハンドルのファイル名と勘違いしてましたw
実行されたスクリプト名だったんですねorz


ファイルハンドルからファイル名を知りたいと思ったのは、ファイルハンドルを受け取る関数を作ってたんだけど、
ハンドルからファイル名を知れたらやりたい事が出来るようになるので楽かなと。

そうゆういった意味で聞きました。


594 :デフォルトの名無しさん:2011/10/18(火) 14:57:40.26 .net
>>593
その関数でファイルハンドルもファイル名も欲しいんだったら
両方渡してやるようにすればいいのでは

595 :デフォルトの名無しさん:2011/10/18(火) 17:42:24.47 .net
スクリプトが約100もあったので、どうにか呼んだ関数側のみで解決できないかなと^-^;
素直にファイル名も渡すように修正しました。

ありがとうございましたm(_ _)m

596 :デフォルトの名無しさん:2011/10/19(水) 00:53:22.39 .net
余計なモジュール入れたくないからEncode使いますが何か

597 :デフォルトの名無しさん:2011/10/19(水) 06:41:15.22 .net
ちなみにDump結果を変数にトラップする方法。
use Devel::Peek ;

close STDERR ;
open STDERR, q{>}, \my $hoge or die ;
open my $fh, q{<}, q{hoge.txt} ;
Dump $fh ;
close $fh ;
print $hoge;


598 :デフォルトの名無しさん:2011/10/19(水) 20:16:02.34 .net
my $dump = Dump($fh);

599 :デフォルトの名無しさん:2011/10/19(水) 22:38:59.96 .net
試してから書けばいいのに


600 :デフォルトの名無しさん:2011/10/20(木) 23:43:05.41 .net
余計なフラグいじりたくないからJcode使いますが何か

601 :デフォルトの名無しさん:2011/10/21(金) 09:35:11.54 .net
保守されてないモジュールを有り難がってもなあ。

602 :デフォルトの名無しさん:2011/10/21(金) 23:03:40.46 .net
COPYRIGHT に
you can redistribute it and/or modify it under the same
terms as Perl itself.

って書いてあるわけで、使われている間はすなわち保守されて
いると考える一途なオレでも、本当に保守されている jacode.pl
には目移りしている

603 :デフォルトの名無しさん:2011/10/21(金) 23:46:13.18 .net
しっつもーん

PAR で exe 化したプログラムを有償にする場合って、ソースコードの公開義務ってあるんですか?


604 :デフォルトの名無しさん:2011/10/22(土) 00:53:11.74 .net
買わないオレに公開する必要はない

605 :デフォルトの名無しさん:2011/10/23(日) 13:29:22.89 .net
PARはソースコード公開(添付)してるようなものだから必要ないだえお

606 :デフォルトの名無しさん:2011/11/03(木) 15:53:26.69 .net
仕事で使うなら最悪の場合、自分でソース読んで改造・修正する
必要がでてくるので、能力的にも時間的にも自分で何とかなる
範囲のモジュールやライブラリを選ぶことになる。

当時NKFがあったにも関わらず、あえてjcode.plが作られた目的
はそこにあったと思う。NKFの座はいまやEncodeが奪ったが、
jacode.plの利点は当時と同じく今も価値がある。




...なんてな

607 :デフォルトの名無しさん:2011/11/05(土) 11:02:27.13 .net
目指す方向の違いかも

Encode.pm -- 大は小を兼ねる(おとこのこ)
jacode.pl -- 小は大を兼ねる(おんなのこ)

608 :デフォルトの名無しさん:2012/01/09(月) 12:12:05.71 .net
Padre使っている人ってどれぐらいいる?
perl editor使っている人はどれぐらいいる?

609 :デフォルトの名無しさん:2012/01/09(月) 12:34:09.28 .net
${どっちも知らない}++;

610 :デフォルトの名無しさん:2012/01/09(月) 17:20:23.97 .net
Perl言語でモンテカルロ・シミュレーションをやって、
ワクチンの効果を分析するっていうのがあるそうなんですけど、
とてもじゃないけど、学習が間に合わない。

Perlの基礎から学習しないといけないし・・・。

はあー、タメイキ・・・

611 :デフォルトの名無しさん:2012/01/09(月) 18:34:18.11 .net
>>610
言語は何と何なら使えるの? ある程度の心得があれば大丈夫でしょう。
まるっきりのプログラミング初心者だと確かに大変かもしれないけど…
モンテカルロ法自体はそんなに複雑な方法でもないと思うし。
まさか最初から全部自分で書けって訳でもないだろうし。そのまさか?

612 :デフォルトの名無しさん:2012/01/09(月) 19:25:59.38 .net
>>610
漢字で書くべき単語を無駄にカタカナで書くおっさんには無理

613 :デフォルトの名無しさん:2012/01/09(月) 20:25:52.92 .net
激しく同意で御座います

614 :デフォルトの名無しさん:2012/01/09(月) 22:59:46.40 .net
>>611
プログラミング初心者です。
書けるのはHTMLくらいです。
論文に、前提と結果だけがあるんですけど、
プログラムがどんなか、わかりません。

615 :デフォルトの名無しさん:2012/01/09(月) 23:05:44.42 .net
active perlをインストールして、Hello world!だけはできました。

616 :デフォルトの名無しさん:2012/01/09(月) 23:52:44.96 .net
初心者なのかーそりゃ大変だ。
期間がどれくらいあるのかにもよるだろうけどねえ。
まあ周囲にプログラミングの心得のある人がいないか探して
ちょっとアドバイスとかいろいろ頼ってみたら。

617 :デフォルトの名無しさん:2012/01/10(火) 00:04:45.05 .net
>>612
文学がわかっちゃいないね、キミ

618 :デフォルトの名無しさん:2012/01/10(火) 01:28:19.05 .net
>>617
うるせえハゲ

619 :デフォルトの名無しさん:2012/01/15(日) 11:01:32.44 .net
>>610
ちょろっと検索しただけでいろいろ出てくるぞ。
でもPerlを覚えるのが目的ではないのだとしたら、おれならAWKで
書くな。その方が覚えることが少ないし、記述するのに機能が足り
ないってこともないと思う。もしどうしてもPerlでっていうならば
書き終わってから a2p でPerlスクリプトにすればいい。

620 :デフォルトの名無しさん:2012/01/15(日) 13:05:04.45 .net
AWKでネットワーク通信できるの?

621 :デフォルトの名無しさん:2012/01/15(日) 17:28:55.42 .net
何だ?ネットワークのネの字もなかったのにいきなり高度な...
ネットワークとモンテカルロ法は別物だから切り離したほうが
よくね?まさかGUIも必要だとか言いださないよな?一個ずつ
駒を進めようぜ。

622 :問題です:2012/01/18(水) 03:41:34.72 .net
CP932の文字コードのみを使い、下の処理を実現してください。
モジュールは全て使えないものとします。

問1) まんじゅうこわい 難易度:★☆☆
(1-A)のように$matcherに文字列が設定されていています。
(1-B)の$textを走査して、(1-C)のように$matcherの内容が
最初に含まれる行の行数を表示してください。
行数は1から始まるものとします。

(1-A)
my $matcher = '饅頭怖い';

(1-B)
my $text = <<'EOL';
饅頭怖くない。
これは良い饅頭。
従って饅頭怖い。
EOL

(1-C)
3

623 :問題です:2012/01/18(水) 03:42:03.43 .net
問2) パスの分割 難易度:★★☆
(2-A)のように$pathにパスが設定されていています。
ドライブ名、ディレクトリの各階層名、ファイル名を分割して
(2-B)のように表示してください。

(2-A)
my $path = 'C:\メモ\饅頭怖いよ\full.txt';

(2-B)
C:
メモ
饅頭怖いよ
full.txt

624 :問題です:2012/01/18(水) 03:42:27.39 .net
問3) 裏から覗く? 難易度:★★☆
正規表現を使い、(3-A)の$textの中の「表」を「裏」に置換して、
(3-B)と同じ内容を表示してください。

(3-A)
my $text = '\\表\\\助\\封\\呂\\表\\\';

(3-B)
\裏\助\封\呂\裏\

625 :デフォルトの名無しさん:2012/01/18(水) 20:30:24.83 .net



宿題は自分でやりましょう




626 :デフォルトの名無しさん:2012/01/20(金) 00:56:22.05 .net
# 問1) まんじゅうこわい 難易度:★☆☆

my $matcher = '饅頭怖い';

my $text = <<'EOL';
饅頭怖くない。
これは良い饅頭。
従って饅頭怖い。
EOL

@_ = split(/\n/,$text);
my $i = 1;
for(@_){
if(/($matcher)/){
print $i, "\n";
}
$i++;
}

__END__
※ このスクリプトは jperl を使って実行します


627 :デフォルトの名無しさん:2012/01/20(金) 00:58:15.41 .net
# 問2) パスの分割 難易度:★★☆

my $path = 'C:\メモ\饅頭怖いよ\full.txt';

$path =~ s/\\/\n/g;

print $path, "\n";

__END__
※ このスクリプトは jperl を使って実行します


628 :デフォルトの名無しさん:2012/01/20(金) 00:58:52.58 .net
jperlなんて今更どうやって用意するのよw

629 :デフォルトの名無しさん:2012/01/20(金) 01:01:19.90 .net
# 問3) 裏から覗く? 難易度:★★☆

my $text = '\\表\\\助\\封\\呂\\表\\\';

while($text =~ /([\x81-\x9F\xE0-\xFC][\x40-\x7E\x80-\xFC]|[\x00-\xFF])/g){
if($1 eq '表\'){
print '裏';
}
else{
print $1;
}
}

__END__
※ このスクリプトは perl を使って実行します

perl と jperl の使い分けがポイントです。
授業で教えましたよね?

それと宿題を2チャンネルで行うのは今後、禁止いたします。


630 :デフォルトの名無しさん:2012/01/20(金) 01:03:28.68 .net
>>628
ちゃんと授業を聞いていましたか?
ベクターにあると説明したはずです。

631 :問題です:2012/01/20(金) 03:41:59.47 .net
>>629
正規表現で置換してないので、間違いです。
それと、jperlとお幸せに。

632 :デフォルトの名無しさん:2012/01/20(金) 21:22:29.16 .net
べくたーwwwww

633 :へたくそ:2012/01/20(金) 21:37:23.75 .net
問1)
my $matcher = '饅頭怖い';

my $text = <<'EOL';
饅頭怖くない。
これは良い饅頭。
従って饅頭怖い。
EOL

my $i = 1;
foreach (split(/\n/,$text)){
if (/\Q$matcher\E)/){
print("$i\n");
last;
}
$i++;
}

問2)
my $path = 'C:\メモ\饅頭怖いよ\full.txt';
my $char = '(?:[\x00-\x7F\xA1-\xDF]|[\x81-\x9F\xE0-\xFC][\x40-\x7E\x80-\xFC])';

foreach ($path =~ /$char/go){
print( ($_ eq '\\') ? "\n" : $_);
}

問2)
my $path = 'C:\メモ\饅頭怖いよ\full.txt';
$path =~ s/([\x81-\x9F\xE0-\xFC][\x40-\x7E\x80-\xFC])/\1?/g;
$path =~ s/\\(?!\?)/\n/g;
$path =~ s/\?//g;
print($path"\n");

634 :へたくそ:2012/01/20(金) 21:38:57.63 .net
問3)
my $text = '\\表\\\助\\封\\呂\\表\\\';

$text =~ s/([\x81-\x9F\xE0-\xFC][\x40-\x7E\x80-\xFC])/?\1?/g;
$text =~ s/\Q?表?\E/裏/g;
$text =~ s/\?//g;
print("$text\n");

635 :先生より:2012/01/20(金) 21:57:35.26 .net
何人かの生徒から知らせを受けて、まさかと思いここをアクセスしたら
問題がそのまま掲載されていて、驚いています。

ここに掲載された回答を書いたひとは配点しませんので、そのつもりで
いてください。

問題を載せた君は月曜日に職員室に来てください。誰かは大体分かって
います。

636 :先生より:2012/01/20(金) 22:10:10.58 .net
>>631
【正規表現を使い、(3-A)の$textの中の「表」を「裏」に置換して、】

「正規表現で置換する」とは言っていません。条件は、
1. 正規表現を使うこと
2. 置換すること
です。

あわてずに問題を読みましょう。
あ、それと君も職員室に来てください。

637 :デフォルトの名無しさん:2012/01/20(金) 22:11:14.75 .net
1.性器表現を使うこと
2.痴姦すること

ですね!

638 :デフォルトの名無しさん:2012/01/20(金) 22:15:09.53 .net
下ネタは5.8のほうでやってください。そっちに好きなひとがいるんで。

639 :先生より:2012/01/20(金) 23:39:20.06 .net
誰も名のらなかった場合は、全員を減点します。
校長先生には許可をもらいました。

おや?そうなると進級できないひとがでてきそうですね。
もしかして、書き込んだのは...

640 :問題です:2012/01/21(土) 12:51:49.27 .net
>>633-634
グッジョブでした。

641 :答え:2012/01/21(土) 12:53:34.05 .net
問1)
'怖い'(\x95|\x82\xA2)にはバーティカルバーが含まれるため、
正規表現でマッチさせると'饅頭怖い'は'い'(\x82\xA2)を含む文字列にマッチする。
解決するには、メタキャラクタをクォートしてリテラルキャラクタにするか、
正規表現は忘れてindex()を使う。

my $matcher = '饅頭怖い';
my $text = <<'EOL';
饅頭怖くない。
これは良い饅頭。
従って饅頭怖い。
EOL

my $cnt = 1;
foreach(split /^/, $text) {
    if (/\Q$matcher\E/) {
        print $cnt, "\n";
        last;
    }
    $cnt++;
}

642 :答え:2012/01/21(土) 12:54:14.19 .net
問2)
'饅頭怖いよ'の'饅'(\xE9\\)の2バイト目にバックスラッシュが含まれるので、
そのままsplit(/\\/, $path)すると'\xE9'と'頭怖いよ'に分割されてしまう。
split(/(?<![\x81-\x9f\xe0-\xfc])\\/, $path)では、
'モ\\'(\x83\x82\\)と'よ\\'(\x82\xE6\\)が分割できなくなる。
解決するには、頭からデータの並びを調べる。

my $path = 'C:\メモ\饅頭怖いよ\full.txt';

my $cp932 = qr/(?:[\x00-\x80\xa0-\xdf\xfd-\xff]|[\x81-\x9f\xe0-\xfc][\x40-\x7e\x80-\xfc])*?/;
print($1, "\n") while($path =~ /\G($cp932)\\/gc);
print($1, "\n") if ($path =~ /(.+)$/g);

643 :答え:2012/01/21(土) 12:54:50.53 .net
問3)
漢字1バイトズレ問題。
'表'(\x95\x5C)を'裏'(\x97\xA0)にs/表\/裏/gで置き換えると、
'助\\'(\x8F\x95\x5C)が、"女\xA0"(\x8F\x97\xA0)に置き換えられ、
'封\\'(\x95\x95\x5C)が、"風\xA0"(\x95\x97\xA0)に置き換えられる。
解決するには、頭からデータの並びを調べる。

my $text = '\\表\\\助\\封\\呂\\表\\\';

my $cp932 = qr/(?:[\x00-\x80\xa0-\xdf\xfd-\xff]|[\x81-\x9f\xe0-\xfc][\x40-\x7e\x80-\xfc])*?/;
$text =~ s/\G($cp932)表\/$1裏/g;
print $text;

EUC-JP版のズレ対策はPerlメモさんにあります。
http://www.din.or.jp/~ohzaki/perl.htm#JP_Match

644 :答え:2012/01/21(土) 13:25:14.16 .net
コードはTMTOWTDIってことで。

こんな面倒なことをやっても、このコードはCP932専用。
EUC-JPかUTF-8に変更されると書き直しに迫られる。
Perlの三大美徳の怠惰を忘れずに。

645 :デフォルトの名無しさん:2012/01/21(土) 14:32:17.48 .net
で本当の問題は、これをEncodeモジュールを使って
CP932、EUC-JP、UTF-8全て対応にするという物。

646 :デフォルトの名無しさん:2012/01/21(土) 21:47:42.75 .net
JperlじゃEncodeモジュール使えないじゃん。確かにそれは問題だな。

647 :デフォルトの名無しさん:2012/01/21(土) 21:54:33.42 .net
なんだ、やっぱりダメなんだなEmcodeは

648 :デフォルトの名無しさん:2012/01/21(土) 22:46:51.21 .net
# 問3) 裏から覗く? 難易度:★★☆

# my $text = '\\表\\\助\\封\\呂\\表\\\'; ← 表の後ろに \ が3つ
my $text = '\\表\\助\\封\\呂\\表\\';

$text =~ s/表/裏/g;

print $text;

__END__
※ このスクリプトは jperl を使って実行します

問題では変数 $text の表の後ろに3つの \ があるためにおかしな
ことになっていますが、現実の問題としては2つの \ ということに
なるでしょう。

こうすることで正規表現による置換ができます。

649 :デフォルトの名無しさん:2012/01/22(日) 11:29:56.92 .net
英語版のperlで日本語を処理しようとするのはナンセンスです。
すでにjperlがあるわけですから賢く使い分けましょう。また国際化
対応していれば日本語も扱えるとのたまう輩もおりますが、軽く
受け流して、可能なら5.8スレの方に誘導してあげましょう。
面倒な場合はスルーでも構いません。

650 :デフォルトの名無しさん:2012/01/22(日) 11:47:22.87 .net
Encode使う場合はこうかな

use Encode;
my $cp932 = find_encoding( 'cp932' );
my $um = $cp932->decode( $matcher );
my @text = split( "\n", $cp932->decode( $text ) );
for my $i ( 0.. scalar( @text )-1 ) {
 next unless ( shift( @text ) =~/$um/ );
 print $i + 1 . "\n";
 last;
}

問題がつまらんね

651 :デフォルトの名無しさん:2012/01/22(日) 11:55:28.79 .net
まあ、義務教育の中等学校だからそんなもんだね

652 :デフォルトの名無しさん:2012/01/22(日) 11:56:43.81 .net
jperlにしがみつく人が屁理屈で問題作ってるんだよ
もし学校で「jperlだけを使いなさい、jperlを前提としたプログラムを作りなさい」って
教育してるなら日教組並みの害悪

653 :デフォルトの名無しさん:2012/01/22(日) 12:22:14.65 .net
>>652
今更jperlは無いわ。
目が節穴じゃね?

654 :デフォルトの名無しさん:2012/01/22(日) 12:35:43.12 .net
>>650
モジュールを使えるのなら、レガシーなスクリプトに対してはencodingを使える。

use encoding qw(cp932);

...

my $cnt = 1;
foreach(split /^/, $text) {
    if (/$matcher/) {
    print $cnt, "\n";
        last;
    }
    $cnt++;
}

655 :デフォルトの名無しさん:2012/01/22(日) 12:38:11.18 .net
いまさらEncodeモジュール絡みの話をしているPerlの人って……

656 :デフォルトの名無しさん:2012/01/22(日) 12:44:34.84 .net
>>645
モダンにいくなら、UTF-8で書いて、こんな感じ。

use utf8;
use Encode::Locale;
use open qw(:encoding(locale) :std);

...

657 :デフォルトの名無しさん:2012/01/22(日) 13:19:32.77 .net
ヒント:ヒューマンリソースとムーアの法則について

658 :デフォルトの名無しさん:2012/01/22(日) 14:08:47.05 .net
>>657
ホウホウそれで

659 :デフォルトの名無しさん:2012/01/22(日) 17:50:00.68 .net
たくさんの回答、ありがとうございました。
中には学校で習ったものよりも高度なものがあり、パールの苦手なぼく
にもとても参考になりました。でも将来プログラマになるわけではない
ので簡単なJPERLで十分かな?と思っています。

明日、出頭し処分を受けることになりそうですが、あまり後悔はして
ません。ここでいろいろ勉強になったからです。

ところで職員室は第一ですか?それとも第二のほうがいいですか?

660 :デフォルトの名無しさん:2012/01/22(日) 18:33:21.22 .net
展開がキチガイ過ぎて言葉が出ない…

661 :デフォルトの名無しさん:2012/01/22(日) 18:52:48.71 .net
jperlは別に簡単ではないぞ。特定の用途の場合にのみちょっと便利なだけだ。

662 :先生より:2012/01/22(日) 21:23:13.30 .net
第二です。8:40までにくること!

663 :デフォルトの名無しさん:2012/01/22(日) 21:31:34.74 .net
承知しました

664 :デフォルトの名無しさん:2012/01/22(日) 22:03:07.77 .net
便利だったら無理に勧めなくたって、みんな使い出すんだろうね
他の何かをdisるのはなぜか危機感を感じてる証拠だろうね

665 :デフォルトの名無しさん:2012/01/22(日) 23:16:21.58 .net
>>659
ああ、一人で幸せに暮らしてくれ。
JPerl(Perl 5.003_07)というCPANどころかData::Dumperすら無いシロモノを他人に勧めるな。

666 :デフォルトの名無しさん:2012/01/22(日) 23:17:03.60 .net
そりゃあ、上のスクリプトを比べてみれば一目瞭然だもの。

667 :デフォルトの名無しさん:2012/01/22(日) 23:26:02.71 .net
道具を使うのは人間なんだから、使いやすいものをそのときどきによって
選択すればいいよね。あるから使わないといけないと考えるのは本末転倒
で無駄な苦労をすることになるよね。でもまあご自由にどうぞ。

668 :uy:2012/01/23(月) 17:02:41.36 .net
可愛そうに・・・・・・


>>667
最近、誰の受け売りだか知らんがこういう事言ってる奴いるけど

はっきりいって、C#.NET知ってればほとんどのことは出来るし、
ようは言語同士の連結の仕方を知っているかどうかだけど、大丈夫か?

Rubyだけ使っていたって、そこから.NETやC呼び出せばほぼ何でも出来るようになるわけだけど

Perl使いさんたちは、言語同士の連結のやり方 わかっていますか?

669 :デフォルトの名無しさん:2012/01/23(月) 17:07:17.50 .net
へえC#.NETって環境を問わずどこでも使えるんだー知らなかったよ
言語同士の連結ってどうやるの?連携のさせ方ならいろいろあるだろうけど連結は聞いたことなかったな

670 :uy:2012/01/23(月) 17:59:27.39 .net
機械語で想像できないから
連結って言葉に違和感を覚えるのか
それとも、
dllファイルを別々にしたときの挙動すら、わかっていないのか
さすがにPerl使ってる奴は井の中の蛙という言葉がふさわしい・・・

ああ可愛そうに
ひたすら可愛そうに

671 :uy:2012/01/23(月) 18:00:28.23 .net
この手のバカ

スクリプト言語しか出来ないタイプには多いだろうな

perlより、まずコンピューターの基礎からやり直したほうがいいのではないか

672 :デフォルトの名無しさん:2012/01/23(月) 19:03:38.76 .net
C#.NETでなんでもできるとかほざいてる奴が
井の中の蛙だのコンピューターの基礎だの烏滸がましいわw

673 :デフォルトの名無しさん:2012/01/23(月) 19:04:09.63 .net
>>668
PerlはモジュールをCで書くことも可能であれば、Cから呼び出すことも可能だよ。
ActivePerlならWIndowsスクリプトファイル(wsf)でVBやJScirptと混ぜ書きもできる。

でさ、アセンブラを20年ぐらいやってるとさ、ポストデクリメント演算子に
違和感を覚えるんだけどさ、あれどう思う?

ああ、それと>>667の意見には同意です。

674 :デフォルトの名無しさん:2012/01/23(月) 21:30:12.88 .net
えさは足りてるみたいなので与えないでください

675 :uy:2012/01/24(火) 00:02:01.90 .net
>>673
ほら突っついたらでてきた
井の中の蛙wwwww

そんなの出来ることは当たり前なのに

どうした? どこか痛いのか?

目的の為に言語を変えるか、
俺が言いたいのは
お前たち程度のレベルで、目的の為に最適な言語がいつから選べると慢心しているのかって事だ

CGIを書くのにCは使わない? そんなのは当たり前で
段階はその次だ

CGIを書くためにどのWeb言語を使うのか?
その選択がお前たちは出来ないから・・・・こんなスレにいるんだろwwwwwwwwバカかwwwwwww
perl一生つかっていろよwwwwwwwwwwwwwwwwwwWWWWWWWWW

676 :デフォルトの名無しさん:2012/01/24(火) 01:16:41.40 .net
早い話が、結局何をやってもものに出来なかった人の嫉妬ですね。

677 :デフォルトの名無しさん:2012/01/24(火) 01:31:36.16 .net
nyは専ブラであぼーんだな

678 :デフォルトの名無しさん:2012/01/24(火) 01:54:43.15 .net
世の中にはCで書かれたCGIもあるんだぜ
しかも身近に

679 :デフォルトの名無しさん:2012/01/24(火) 08:33:13.29 .net
中国人が抱く外国イメージ 「韓国人は横柄な歴史ドロボー」

中国にとってトラブルの絶えない韓国へのイメージで最も支持を得たのは「歴史ドロボー」だった。
7.6%で1位となった「歴史の剽窃(ひょうせつ)」について、環球網は「端午の節句や孔子を韓国の文化遺産にするなど、
韓国が中国の歴史を盗んだ」ことが背景にあると解説した。また、韓国人が常に自国製品を「世界一」「最先端」と「自称」する
韓国メディアにより「横柄」(7.3%)が2位となったと紹介した。
第3位は「整形」(6.6%)だった。(「整形」が「韓国ドラマ」3.7%、「美女」2.9%を上回った)
このほか「ケチ」「過激」「民族主義」が3−6%。韓国の「家電・デジタル製品」は1−2%にとどまった。
http://news.searchina.ne.jp/disp.cgi?y=2012&d=0118&f=national_0118_074.shtml

680 :デフォルトの名無しさん:2012/01/24(火) 19:43:02.60 .net
index.cgiを開いたらバイナリだったでござるの巻

681 :デフォルトの名無しさん:2012/01/25(水) 17:49:38.95 .net
ぶっちゃけもはやスクリプト自体はutf-8で書くことが多くなってるし
jperlとか害悪としか思わない

682 :デフォルトの名無しさん:2012/01/25(水) 22:47:18.47 .net
早く社会に出て役立つプログラム作ろうな。

683 :デフォルトの名無しさん:2012/01/26(木) 00:24:25.93 .net
企業は競争力や応用力を判定している
薀蓄は相手にしていない

684 :デフォルトの名無しさん:2012/01/27(金) 01:25:11.60 .net
ぶっちゃけ単にエンタープライズ環境を知らないだけなんだろうな
10年、20年と動かすソフトウェアを流行りに合わせて書くわけには
いかんからな

685 :デフォルトの名無しさん:2012/01/27(金) 02:22:30.64 .net
Java4が稼動してそうで怖い話だな。

686 :デフォルトの名無しさん:2012/01/27(金) 08:36:33.85 .net
Java4のソースコードなら
今も最新Javaで普通に動く。

687 :デフォルトの名無しさん:2012/01/27(金) 13:36:37.34 .net
>>686
コーディング規約でJava1.4縛りってあるものなの?
Java5以降の機能は使用禁止みたいな。

688 :デフォルトの名無しさん:2012/01/27(金) 17:46:45.90 .net
>>687
ジェネリックス禁止とか、for-each文禁止とかは企業なら普通にあるだろ。
互換性もそうだが、Javaオタクを排除して誰でも保守できるようにするという
重要な側面がある。

まあ、Java5、Java6で初めて追加された有用なクラスライブラリもあるから、
それはあくまでコーディング規約上の問題で、コンパイルと実行にはJava6を
使っているというケースもあるが。

……スレ違いだがマジレスしてしまった。

689 :デフォルトの名無しさん:2012/01/27(金) 21:00:28.98 .net
>>688
なるほど、過去のバージョンに固定しての開発は普通にあるのね。
ジェネリクスは置いといて、auto-boxingが無いだけでも面倒そう。

690 :デフォルトの名無しさん:2012/01/31(火) 09:38:20.86 .net
ActivePerlでWin32::GuiTestを使いたいのですが
PPMに出てきません
どこに有りますか?

691 :デフォルトの名無しさん:2012/01/31(火) 20:25:29.54 .net
>>690
はずしているかもしれませんが、guitestまたはwin32-guitestで
検索してみてください。Win32::gutestでは出てきません。

あと、ppmが走っているようなので大丈夫のようですが、ユーザー名に
日本語を使用するとppm関係でこけた記憶があります。

692 :デフォルトの名無しさん[:2012/01/31(火) 21:17:48.24 .net
>>691
ありがとうございます
試してみます

693 :デフォルトの名無しさん:2012/01/31(火) 23:18:31.55 .net
>692
なんか、はずしてるようなので調べてみました。どうやら、
リポジトリの追加とかが必要なようです。
実際、リポジドリの登録はした覚えがあります。

http://cz500.com/diary/?20110310
からの抜粋(コピペしやすかったので採用)

1.スタート>ActivePerl>Perl Package Manager を起動
2.メニューからEdit>Preferences>Repositoriesタブを開く
3.Add Repositoryダイアログでリポジトリを追加
 1.Name cpan
 2.Location http://cpan.uwinnipeg.ca/PPMPackages/10xx/
 3.と入力してAddボタンをクリック。暫くするとRepositoriesタブにcpanが増えます。
4.OKをクリックしてPreferenceを閉じます。

ホームページによっては少し違いがあり、当方では追加済みなので、
検証することができません。うまくいかなかったら、activeperl
cpan ppm リポジトリの追加あたりでググって見てください。
ミスリードしたみたいですいません。

694 :デフォルトの名無しさん:2012/02/06(月) 10:06:28.10 .net
以下のスクリプトで200MB以上の動画をダウンロードしようとすると
512KBのファイルしか落ちません(Win7 32bitにStrawberry Perlです)
どうすれば全部落とせますか?

use strict;
use warnings;
use LWP::Simple;
use open ':std';
use Tk;
use Win32::Clipboard;
use LWP::UserAgent;
use HTTP::Request;

my $clip = Win32::Clipboard();

my $url = $clip->Get();
print "url=[$url]\n";

my $ua = LWP::UserAgent->new;
my $req = HTTP::Request->new( GET => $url );

my $proxy;
$proxy = "http://XXX.XXX.XXX.XXX:8080";
print "proxy=[$proxy]\n";

$ua->agent("perl-wget");
$ua->proxy( 'http', $proxy );

695 :694:2012/02/06(月) 10:07:01.90 .net
$req->header( 'X-Header1' => 'hoge', 'X-Header2' => 'foobar', );

my $flv_file = "c:\\pl test\\xyz.flv";
my $res = $ua->request( $req, $flv_file );

my $head = $res->headers_as_string;
print "headers_as_string=[$head]\n";

実行結果
url=[http://XXX.XXX.XXX/flv/XXX/XXX/XXX/XXX/XXX/XXX.flv]
proxy=[http://XXX.XXX.XXX.XXX:8080]
headers_as_string=[Cache-Control: no-store, no-cache, must-revalidate
Connection: close
Date: Mon, 06 Feb 2012 00:46:54 GMT
Via: 1.1 localhost:8080 (squid/2.7.STABLE7)
Accept-Ranges: bytes
Server: Apache
Content-Length: 282093419
Content-Type: application/octet-stream
Client-Date: Mon, 06 Feb 2012 00:51:02 GMT
Client-Peer: XXX.XXX.XXX.XXX:8080
Client-Response-Num: 1
Content-Disposition: filename=XXX.flv
X-Cache: MISS from localhost
X-Cache-Lookup: MISS from localhost:8080
X-Powered-By: PHP/5.2.17
]


696 :デフォルトの名無しさん:2012/02/06(月) 22:52:57.31 .net
proxy経由しないでも同じ結果か等の原因の切り分けはしたの?

697 :デフォルトの名無しさん:2012/03/04(日) 19:10:14.90 .net
.(ピリオド)を_(アンダースコア)に変換しようとして、\マークを付け忘れたので、
ファイルの全てが_で埋め尽くされたファイルが出力されたorz

698 :デフォルトの名無しさん:2012/03/05(月) 00:59:57.32 .net
便箋w

699 :デフォルトの名無しさん:2012/08/04(土) 13:16:49.80 .net
Perlコード汚すぎる。


700 :デフォルトの名無しさん:2012/08/04(土) 13:29:41.35 .net
俺なんかそのまま納品して、夏休みとった年があるw^_^

701 :デフォルトの名無しさん:2012/10/17(水) 18:25:33.11 .net
文字列の処理が容易である
とくに文字列のパターンマッチ能力に優れている
動的データの処理に優れている
OSとの連携に強い(OSのコマンド、GUIツールキット)
インタプリタ型である
(スクリプト言語に共通する特徴)

スクリプト言語のいろは|Cマガジン2000年10月号

702 :デフォルトの名無しさん:2012/10/20(土) 14:50:00.72 .net
> 文字列の処理が容易である
もちろん「2000年10月の時点では」っていう意味だろうけどねw

CがC++になって迷走するのと同様、Perlも赤の他人が拡張すると迷走して
その後は...

703 :デフォルトの名無しさん:2012/10/24(水) 02:32:36.90 .net
>>699
もともと、アドホックな使い捨てのコードを書くための言語だからなー。
コードの保守性とか再利用性とか始めたらダメ。
可読性なんて考えずに、組み易い書き方で手早く作って、
パッと使って、そんでおしまい・・・というのが正しい使い方。

704 :デフォルトの名無しさん:2012/10/25(木) 11:28:52.33 .net
保守性・再利用性ならCOBOL一択だよね!!

705 :デフォルトの名無しさん:2012/10/26(金) 01:46:36.75 .net
同じような仕事にしか使わんからな。

706 :デフォルトの名無しさん:2012/11/10(土) 11:32:03.17 .net
今の時代ならDSLといえば
COBOLのすばらしさが分かるだろう。

707 :デフォルトの名無しさん:2012/11/10(土) 13:11:12.89 .net
read うんたらかんたら
at end
* EOF時の処理
not at end
* 読めたときの処理
end-read

のファイル入力構文は初めて見たときカルチャーショックだったな

708 :デフォルトの名無しさん:2012/11/17(土) 14:18:46.56 .net
言語が違えばやり方は違うんだから想定の範囲内だがな
むしろC言語系の方が後からできたわけだから(いい意味で)カルチャーショック
だったが
いずれにしても遠い過去の話だな、おじいさんよ

709 :デフォルトの名無しさん:2012/11/17(土) 17:59:06.65 .net
>>708
いやJavaを先にやってたから
後でCOBOLのコード見たときにカルチャーショックだったんよ
EOFを返してもらうんでなく、構文としてやるってのがね

710 :デフォルトの名無しさん:2012/11/17(土) 20:21:00.74 .net
でもパソコンじゃあC言語の前にBASICがあって、それって
いま言ってるCOBOL風になってなかったっけ?
709はパソコンの創世記を知らない若い世代なのかな

711 :デフォルトの名無しさん:2012/11/17(土) 21:32:41.75 .net
>>710
昔を知らないのは当たり…なのかな、自分が使ったことのあるBASICは
VBとか、N88なら互換系BASICくらい
(PC98でのN88も「その時点で既に年代物として」一度だけ触ったことはある)
でもそれらもC系と同じくEOF()関数みたいなので判定する形式だったような…
EOF判定自体をブロック構文にしてしまってるのは今のところCOBOL以外見たことないっす

712 :デフォルトの名無しさん:2012/12/03(月) 14:49:49.57 .net
初心者を育てるのがPHP、初心者を袋叩きにして人格否定までするのがPerl

713 :デフォルトの名無しさん:2012/12/03(月) 23:15:25.81 .net
PHPもPerlもただのプログラミング言語だから育てたりとか袋叩きにしたりとかはしない。
というかできない。
なにか違う次元の違うしろもののことを言ってるんだろうけど異次元の住人の話はよくわからんな。

714 :デフォルトの名無しさん:2012/12/04(火) 00:49:41.86 .net
「同じ問題でも解き方は人によって違っていい」ってのが Perl の思想だからな。
人格否定なんてありえない。

715 :デフォルトの名無しさん:2012/12/04(火) 05:53:42.12 .net
解き方は人によって違っていいが
書き方は統一しろ。

716 :デフォルトの名無しさん:2012/12/05(水) 08:28:36.86 .net
>>715
コード整形ツールを使いたまえ

717 :デフォルトの名無しさん:2012/12/15(土) 21:53:54.04 .net
初心者を袋叩きにして人格否定までするのはモダンPerl。
いわゆる普通のPerl利用者はそんなことはしない。混同しないこと。

718 :デフォルトの名無しさん:2012/12/16(日) 00:08:21.80 .net
> 初心者を袋叩きにして人格否定

誰のこと? そんな人いないよ。

719 :デフォルトの名無しさん:2013/01/12(土) 17:48:21.31 .net
え?

720 :デフォルトの名無しさん:2013/01/13(日) 04:08:36.23 .net
>>718←何言ってんのコイツwww

721 :デフォルトの名無しさん:2013/01/20(日) 03:19:14.74 .net
>>717
トロールのトロールのトロールみたいなコミュニティだよね。モダンperlって

722 :デフォルトの名無しさん:2013/01/28(月) 23:19:32.03 .net
いろいろ複雑なテキスト解析をして、最終的にExcelのファイルにしたい
要は、既にあるExcelのファイルとフォーマットは同じで、
中に書いてあるテキストだけ入れ替える感じ

どういうステップを踏むのがいちばん楽だろう

723 :デフォルトの名無しさん:2013/01/28(月) 23:54:01.34 .net
一回こっきりならコピペだな

724 :デフォルトの名無しさん:2013/01/29(火) 00:06:13.05 .net
一回なら間違いなくそうするけど、
多分、100近くある

725 :デフォルトの名無しさん:2013/01/29(火) 00:37:27.03 .net
csvでいいならcsvを吐き出せばいいが
Excelブックを作りたいならPerlでできるのかそれ

726 :デフォルトの名無しさん:2013/01/29(火) 03:02:33.78 .net
ファイルのi/oでexcelのシートを作るのは面倒だから、
use Win32::OLE::Const 'Microsoft Excel';
で、ExcelのセルいじっちゃいなYO

727 :デフォルトの名無しさん:2013/01/29(火) 08:21:49.20 .net
Perl使いをなめるなよ
CPANにはExcelファイルを出力するモジュールがいっぱいある
ttp://search.cpan.org/search?query=Excel&mode=all

728 :デフォルトの名無しさん:2013/01/29(火) 19:31:23.69 .net
ダイレクトでxlsを吐くんじゃなくて、
一旦テキストに出して、そこからxlsを作るExcelマクロを走らせるのが楽

全部perlでとか、全部Excelでやろうとすると、手間が増える上に保守性も落ちる

729 :デフォルトの名無しさん:2013/02/17(日) 02:01:28.40 .net
うん、Excelファイルはすごく複雑
MS以外が不具合なしに扱えるものじゃない。
絶対バグでハマる。

730 :デフォルトの名無しさん:2013/02/17(日) 09:22:06.54 .net
中間ファイルのフォーマットをきっちり決めて、
Excel 側で、マクロなりインポートなりで、
データ取り込む手段を確立して、
それに合わせてファイルを生成するのがおそらく一番間違いが少ない。

731 :デフォルトの名無しさん:2013/02/17(日) 13:36:57.25 .net
>>722は結局どうやったんだろうね

732 :デフォルトの名無しさん:2013/02/23(土) 00:52:05.88 .net
Perlでテキスト⇒テキスト変換をして
UWSCでExcelに取り込む
実はUWSC内で上のPerlも実行するから一発で処理が終わる

733 :デフォルトの名無しさん:2013/04/30(火) 09:44:36.72 .net
ペルシャ湾で天然真珠調査 世界遺産「復活」に協力 2013年4月30日 09時20分
http://www.chunichi.co.jp/s/chuspo/article/2013043001001486.html

 日本の養殖真珠の生産により20世紀前半から天然真珠産業が衰退したペルシャ湾で、
日本がバーレーンと協力し、真珠貝の生息調査に乗り出すことが30日、分かった。
日本の水産技術を使って真珠貝を増やし、伝統産業を復活させるのが狙い。
独立行政法人水産総合研究センター西海区水産研究所(長崎市)などが5月中旬から現地調査を始める。

 真珠産業はクウェートやアラブ首長国連邦(UAE)などの伝統産業として知られ、
バーレーンの真珠文化は昨年、国連教育科学文化機関(ユネスコ)の世界遺産にも登録された。
日本が真珠産業の復活を手助けすることは産油国との関係強化にもつながる。
(共同)

734 :デフォルトの名無しさん:2013/09/10(火) 00:43:12.74 .net
なでしこでいいじゃん

735 :デフォルトの名無しさん:2013/11/03(日) 19:00:39.80 .net
お前らにはどう見えるか知らないが俺にはこう見えてるぞ

print
誰からも愛されてる元気な女の子
気が利いて周囲に信頼されている
グループ行動の時、希に大遅刻をしてしまう

if
普段から冷静で状況把握が得意
二人の親友と一緒に行動する事が多い
予想外の事が起こるとパニックに成りやすい

elsif
リーダをサポートする役割を買って出る好奇心大制な女の子
あたふたしている間に他の子が作業を終らせてくれている事も有る

else
めったに喋らないが一言で状況を変えてしまう天才型
ifと仲が良く、いつも隣に居る
一日、1回はifと手を繋がないと泣き出す

{}
双子の活発な女の子
いつもターゲット(printf)を挟み撃ちにしてほっぺっとほっぺでギューっとする
最後に軽くキスをして誤るのが恒例行事に成っている

736 :デフォルトの名無しさん:2013/11/03(日) 19:02:27.31 .net
()
若干、中二病の女の子
頭が良く、成績優秀だが中二病発動中、常識がまさる事が多いので
完全に中二病になりきれていない
+
凄く普通な女の子
なんでも出きるが、それ故に目立たない
欠点という欠点も見あたら無い
char
ちょっとカラフルな女の子
グループ内で中心的存在、だけど、結構な寂しがり屋
周囲からはカッコイイけど2人きっりの時に、後ろから抱き締めたくなる
っと、囁かれている
open
豪快な性格、隠し事が嫌いで、聞かれたら下着の色まで答えてしまう
裏表ない彼女の性格は周りからは好かれている
授業中でもキスしたいと思ったらキスしたいと叫んで強引キスしようとする。それを周囲が
なだめる事もしばしば…欲望に直球なだけかも知れない
==
会議でのまとめ役、分析が得意で計算もはやい
アニメが大好きで会議中でも時間が来たら勝手に切り上げて帰ってしまう
優秀な人材が居なくなるのは避けたい***は、会議室にテレビを設置したとか…
unless
doと、、いつも一緒で、犬が大好き
特に柴犬が好きで週に3回は触れ合いランドに出かける
明るい彼女に寄って来るのは何故か大人しい犬ばかり
do
犬が大好きな小柄な女性
独特の雰囲気をかもし出している彼女には活発な大型犬が集まりやすい
涎で帽子が湿っている事もしばしば有る
unlessからは活発な犬に好かれているのでやきもちを焼かれる事も…

737 :デフォルトの名無しさん:2013/11/03(日) 19:20:30.34 .net
>>736
今日一日頑張ったな

738 :デフォルトの名無しさん:2014/02/23(日) 00:44:51.23 .net
eq くんを忘れないであげて!
必要不可欠な子なのに、新人さんに中々顔を覚えて貰えないのは不憫すぎるよ!

739 :デフォルトの名無しさん:2015/01/04(日) 23:00:46.21 ID:xcUbwpxr.net
active perl は DBD::MySql に対応するつもりは無いの?
古いバージョンでは動作するけど、無償ダウンロードできないし・・・
やる気あんのか?>active

740 :デフォルトの名無しさん:2015/01/22(木) 21:49:15.27 ID:Ciz/VR24.net
active perlなんか使ってる奴いるのか

741 :デフォルトの名無しさん:2015/01/26(月) 00:28:29.03 ID:Nas4rFKx.net
インストールが楽だ

742 :デフォルトの名無しさん:2015/01/26(月) 07:52:18.18 ID:j1pP3PkZ.net
DBD::MySQLはMySQLに同梱されてなかったか?

743 :デフォルトの名無しさん:2015/02/22(日) 11:59:05.28 ID:ER52YIGr.net
flex 使うのも場合によってはありかな。

744 :デフォルトの名無しさん:2015/02/23(月) 15:01:38.78 ID:IgyMEIlv.net
eval_l => eval('/^AAAAAA/ ? 1 : /^BBBBBB/ ? 2 : ... ')
flex_pipe => flex with pipe
flex_inline => flex with Inline::C

パターン数 10
flex_pipe 16822/s
eval_l 72013/s
flex_inline 493444/s

パターン数 100
eval_l 11036/s
flex_pipe 17530/s
flex_inline 369581/s

745 :デフォルトの名無しさん:2015/02/27(金) 04:12:53.96 ID:SYx5FGl1.net
最近はWindowsだと Strawberry Perl 使ってるなあ

746 :デフォルトの名無しさん:2015/03/01(日) 10:47:45.22 ID:oCpwaziE.net
なにそのPerl

747 :デフォルトの名無しさん:2015/06/06(土) 13:16:02.82 ID:xONP+8H7.net
6/1に公開された5.22で「ダブルダイアモンド演算子」が導入された
たとえば perl -e 'while(<>){ ... }' ファイル ファイル ...
は引数に指定したファイルの内容を順に処理するが
perl -e 'while(<>){ ... }' 'command |'
とかやると 'command |' というファイルではなくcommandを実行してその結果を処理してしまう
while(<<>>) ならそういうことがない

...
知らなかった(汗)
<>自体の仕様を変更してもよかったレベルじゃね?

748 :デフォルトの名無しさん:2015/06/06(土) 16:20:09.81 ID:PUUeW4+U.net
安易に仕様変更とか言う奴は死ぬべき。
前者の仕様に依存した実装だってあり得るんだから

749 :デフォルトの名無しさん:2015/06/09(火) 09:58:53.13 ID:gCwSnWrY.net
>>748
Rubyの中の人たちは全滅だな。w

賛成!

750 :デフォルトの名無しさん:2015/06/11(木) 11:47:33.16 ID:KUeCrWwy.net
実際、後方互換性に関してはPerlはいい仕事してる

751 :デフォルトの名無しさん:2015/12/26(土) 09:41:36.35 ID:xkZV8qrf.net
Perl6 が出たようです
ruby も python もぶっとばせ!

752 :デフォルトの名無しさん:2015/12/28(月) 01:26:56.58 ID:kY09W9+C.net
Windowsにgitクライアントをインストールすると
Strawberry Perl が変な動作するのは
オレだけ?

753 :デフォルトの名無しさん:2016/01/10(日) 13:40:06.62 ID:/ndDSiBm.net
971 名前:名無しさん@七周年[] 投稿日:2006/11/11(土) 00:56:10 ID:M8+ahUZV0
自称スーパープログラマー某

強烈加齢臭
メール見ない メール無視
ドキュメント見ない ドキュメント無視
説明聞かない 説明無視
話聞かない 話無視
ガム→むっちゃー むっちゃー むっちゃー むっちゃー
煎餅→バリバリバリバリバリバリ
菓子パン→モグモグモグモグモグモグモグモグモグモグ
カップアイス→むっちゃー むっちゃー ペロペロペロペロ

フロアすべてに響き渡る 超ばかでかいくしゃみ 当然手でおさえない

異音と異振動
ドスーン!ドスーン! ドカーン!ドカーン! バコーン!バコーン! ズドン!ズドン!
机が近いとマウスポインターが飛ぶ 誤操作誘発
書類だしたりしまうだけでドカンドカン

30秒ごとに口と鼻から異音
ふんっっ!    ふんっっ!   

備品破壊 貸与P C 破壊 他人のもの破壊

奴の作ったスクリプトとプログラムは使えない バグ製造機

電話や共有携帯電話 キーボードが油ベタベタ
奴に電話とPCとコンソールは触らせてはいけない

754 :デフォルトの名無しさん:2016/03/29(火) 09:57:20.41 ID:/c8bAcK4.net
サッカーブッシュ日本代表日程ぷあたん(しゅっちょうまいくろ教育長交代)春文執行40代売上差額シュガーチョコ
https://www.youtube.com/watch?v=NDq1QoJY0nY宇ドナルドアナリストパワーストーンコーチングとしまえん
サッカーブッシュ日本代表日程古本屋よしたけしゅっちょうちょこしゅがー
ディーラー税務署天才開発者死亡詰みヨミドクターマイクロサービス不足
サッカーブッシュ日本代表日程ぷあたんシフト光金さかい強制バイト人権侵害問題
春分資源執行ニューヨーク低原価ぼったステーキソルトレイク福岡横浜新橋奴隷課金パチシフト強制バイト問題新潟米センター生残
コスメ24チャリティー隠れ40代生活保護プレイボーイバイトレードいたりあん接待問題
マスコミKARDローンケーオーサービス不足婚活パーティー寄付金執行原発ビジネス
FBIチャイニーズタイホテル売上事務所ガチャ決算ガチャキャンペーン(販売報道陣過激派組織向携帯最新情報提供終了
校長発言細心注意ノートン産廃エラー(著作権クレーム中国反応融資高額教育費)(中国捕鯨団体40代社員サッカーコメント
高額入学金ヤフウ新橋大学ヤフウ新橋理事長FX経費 おじや50代資産ガリバズフィード40代エリート

755 :デフォルトの名無しさん:2016/04/09(土) 17:13:17.22 ID:P1lehKRX.net
読みにくいperlコードがある場合はデバッガの機能使おう
perl -MO=Deparse スクリプト名 で実行するとperlからそのコードがどういうふうに見えるかが表示される=曖昧な記法じゃなくなるから読みやすくなると思う

use strict; use warnings; してなかったり変数やメソッドに適切な命名できてないようなやつは知らんw

756 :デフォルトの名無しさん:2018/03/03(土) 07:18:08.86 ID:cw9gLPBd.net
またperlの人気出ないかなー

757 :デフォルトの名無しさん:2018/03/03(土) 13:24:56.59 ID:GGmAMA7z.net
Perl6は、期待してたんだけど、どうやら普及しなさそう。
ちょっと試してはみたけど、C系と意外に違ってて、なんか使いにくいんだよなあ。

758 :デフォルトの名無しさん:2018/03/05(月) 10:07:55.39 ID:qTf9YbOJ.net
>>756
まあしかし少なくともUNIX系OSではなんでも作れるスクリプトとして根付いてるから中々なくなりはしないと思う。

759 :デフォルトの名無しさん:2018/05/23(水) 20:14:56.26 ID:Au5e7VGg.net
僕の知り合いの知り合いができたパソコン一台でお金持ちになれるやり方
役に立つかもしれません
グーグルで検索するといいかも『ネットで稼ぐ方法 モニアレフヌノ』

786Y4

760 :デフォルトの名無しさん:2018/05/23(水) 22:07:07.76 ID:kjJ0wThN.net
search.cpanがシャットダウンです

761 :デフォルトの名無しさん:2018/07/04(水) 23:56:05.51 ID:gFgZc5FG.net
8PU

762 :デフォルトの名無しさん:2019/06/08(土) 05:39:12.98 ID:CQrzC4Mf.net
数学用途で久々にperl5で書いた
スコープ制限 や use strict など一切なしのぶっきらぼうな書き方

......完成したコードは変数名などがわかりやすく、例外処理も丁寧な仕上がりだった
保守性重視の書き方しみついたのはなかなか変わらないんだな

763 :763:2019/06/13(木) 14:47:43.00 ID:/0Hvd4dT.net
キャッシュ層の有無も含めて速度もベンチマーク撮りながら
途中でデバッグ用の追跡コードも挟んだりし
use strict や warnings 等もつけたり
スコープや変数名など仕上げた


書き始めは荒っぽく自由に様々なアプローチを試し
デバッグ情報も臨んだ情報が自由に手に入り
望めば保守性の為に厳格に書ける

リストの畳み込み計算など無いものもあるが
おおむね良い言語だ

764 :デフォルトの名無しさん:2019/06/15(土) 00:55:54.14 ID:dlWE+pCO.net
ActivePerlを見限ってついにStrawberryPerlにしたぜ!
26.3がやっと半年ぶりに更新された
30が出てるのに28.1になるとかわけわからん
せめて28.2にしろよ

765 ::2019/10/14(Mon) 22:16:21 ID:ShGJQFvk.net
StrawberryPerlはコンパイル環境が丸ごとバンドルされているのでおススメだよ。

766 :デフォルトの名無しさん:2019/11/18(月) 21:00:37.30 ID:vV3s+CrD.net
Android上でPerlとか動かす実行環境あったのな。ついさっき知った。

https://docs.solab.jp/sl4a/

767 :デフォルトの名無しさん:2020/01/01(水) 14:14:05.07 ID:fUaq4dOi.net
以前ローカルタイムとGMTの秒数のずれを出すためにこんな風に書いた。

use Time::Local;

my $t = timegm(localtime(0));

これは昨日までは正常に動いた。ローカルタイムが日本時間(JST)なら9時間を秒に直した 32400 が返されていた。

しかし今日(2020年1月1日)になったらいきなり巨大な数を返すようになった。
ローカルタイムが JST なら 3155792400 になる。そしてこれは32bitのOSではエラーになった。
(整数のビット数が多くなるように Perl がコンパイルされていれば大丈夫なのかも知れないが)。

この巨大な数はなんなのかと調べてみたら、2070年だった。

$ date -d '@3155792400'
2070年 1月 1日 水曜日 18:00:00 JST
$

で、結局これは timegm() の年に与える数が4桁の西暦年になるように修正したらうまく行った。

use Time::Local;

my @tt = localtime(0);
$tt[5] += 1900;
my $t = timegm(@tt);

これでローカルタイムが日本時間なら 32400 になる。(OSが32bitでも問題なし)。

でもこれ、なんか変だよね? バグじゃないのか? 2020年にいきなり変わるって、元からそういう仕様だったの?

768 :デフォルトの名無しさん:2020/01/01(水) 15:33:18.64 ID:e1g3DWya.net
https://perldoc.perl.org/Time/Local.html#Year-Value-Interpretation
timegmの年に0〜99を指定した場合は現在の年を基準に前後50年の範囲に収まるように解釈する特別扱いで
localtime(0)で帰ってくる70は
2019年は2019+50=2069の範囲外なので1970だったけど
2020年は2020+50=2070なのでそのまま2070になる
ある意味2020年問題やね

769 :デフォルトの名無しさん:2020/01/01(水) 16:16:55.11 ID:fUaq4dOi.net
>>768
わかった。ソース見てわかった。50年な。今年の年に50足して100で割った余りを区切りにするから70が区切りで、70未満は今年の世紀の2000足しちゃうのな。
どうりで71年からはちゃんと計算できると思ったら。

770 :デフォルトの名無しさん:2020/01/01(水) 16:17:56.87 ID:fUaq4dOi.net
未満じゃない。以下か。

771 :デフォルトの名無しさん:2020/01/01(水) 16:21:54.06 ID:Vy5hpr3F.net
ドキュメントを読めよ。

ちなみに確認しないけど、西暦2桁表記は、1970年を基準に±50年の範囲と見なすってのはなんかであった気がする。

772 :デフォルトの名無しさん:2020/01/01(水) 16:22:23.94 ID:Vy5hpr3F.net
出遅れた。orz

773 :デフォルトの名無しさん:2020/01/01(水) 20:55:02.80 ID:MALUlSLD.net
年の2桁表示とか、紛らわしい表記は使ってはいけない!

2020/01/01, 2020-01-01 など、フル桁の4/2/2でないといけない

774 :デフォルトの名無しさん:2020/01/01(水) 22:28:07.13 ID:nMZ5JBqA.net
そういうことじゃないと思うよ。
知ったかぶりしたいわけじゃないから、これだけ紹介しとくよ。
https://qa.itmedia.co.jp/qa4977971.html

775 :デフォルトの名無しさん:2020/01/02(木) 01:20:37.93 ID:EKdEyvit.net
突然にタイムゾーンの話?

776 :デフォルトの名無しさん:2020/01/05(日) 19:51:48.79 ID:YU7sLweA.net
>>771
その区切りが移動するんだな。

777 :デフォルトの名無しさん:2020/01/05(日) 22:57:34.53 ID:UM8RYdV+.net
それにしても年2桁をある年を境に分けるしてって、
俺が中学生の頃に作った家計簿ソフトみたいだなw
もう30年ぐらい前になるのか?

778 :デフォルトの名無しさん:2020/01/06(月) 14:52:57.76 ID:DmV1IuhC.net
DuckDuckGoがPerlで書かれてるって最近知った

779 :デフォルトの名無しさん:2020/01/07(火) 22:37:11 ID:+L6qE003.net
perlは文法の泥沼具合で唯一c++とためはれる言語。もちろん褒めてない。

780 :デフォルトの名無しさん:2020/01/08(水) 12:14:45.57 ID:1aWtkc80.net
log(1000)/log(10) は3だが、int()に通すと2になる。

Windowsサンプル
perl -e "$tmp = (log(1000)/log(10)); printf('result=%s,%s', $tmp, int($tmp));"

Unixサンプル
perl -e "\$tmp = (log(1000)/log(10)); printf('result=%s,%s', \$tmp, int(\$tmp));"

781 :デフォルトの名無しさん:2020/01/08(水) 19:45:30.94 ID:naqRCa+g.net
あー。%s か。

782 :デフォルトの名無しさん:2020/01/09(木) 10:06:14.57 ID:Gxf4nQ6S.net
フォーマットを %.16f にしたら 2.999... のように出たよ。
まあでも環境によって違うかも知れないけどね。

783 :デフォルトの名無しさん:2020/01/09(木) 13:01:10.00 ID:CwRR9iY2.net
ある整数$nを10進表示するために必要な桁数を求めるためにlog($n)/log(10)を使ったのが良くなかった。
小難しいこと考えずにperlらしく素直に文字列としてlength($n)で桁数を取得するのが正解。

784 :デフォルトの名無しさん:2020/01/09(木) 20:26:28.10 ID:C+kuIm3o.net
Perlじゃなくても、浮動小数点数なら残当。
結局、10で何回割れるか数えるのが一番合理的なんかねえ。

785 :デフォルトの名無しさん:2020/01/10(金) 04:53:14.77 ID:EqsvE6i0.net
問題の本質は、整数と実数の型区別がない言語において、3なのか2.99…なのか簡単に識別する手段がないこと。

786 :デフォルトの名無しさん:2020/01/10(金) 05:45:42.75 ID:EqsvE6i0.net
PerlはCPU依存の浮動小数ではなく、独自の浮動小数を実装している。
計算速度がCやJava劣るのは、単にPerlがスクリプト言語だからというだけではない。
独自な浮動小数には良い面も悪い面もあるが、浮動小数の精度を変更できるのは大きな強み。
以下は、浮動小数の精度を10進換算100桁にするための宣言。

use bignum (a => 100);

787 :デフォルトの名無しさん:2020/01/11(土) 16:09:16.79 ID:j7/IvFvR.net
>>785
ないな。一応 0.5 足してから int() で整数化すれば四捨五入になるけどね。自分でそう書かないとダメだったと思う。誰かがモジュール作って関数化してそうだけど。

788 :デフォルトの名無しさん:2020/01/11(土) 20:26:50.93 ID:usOdB8FH.net
>>785
んなもん、そもそもあるわけがない。
浮動小数点数表現はおろか、有理数表現でも完全に表せない値は当たり前なんだから。

789 :デフォルトの名無しさん:2020/01/15(水) 02:51:20.42 ID:pd5/9Sat.net
「Git 2.25」リリース、「git sparse-checkout」コマンドの追加や細かい機能強化が行われる
https://mag.osdn.jp/20/01/14/171500
内部的な変更としては、「git add「コマンドの「-i」オプションをPerlベースからCに書き換える作業をスタートさせた。

790 :デフォルトの名無しさん:2020/02/06(木) 17:50:53 ID:UYgbv9bH.net
PHPでPerlは使えますか?

791 :デフォルトの名無しさん:2020/02/10(月) 18:58:18 ID:TxaBglIi.net
それはWebのページに埋め込むような感じで使えるかという意味?

792 :デフォルトの名無しさん:2020/02/11(火) 17:48:20 ID:ix+UlUL8.net
PHPのプログラム中からPerlを呼び出すのであれば「php perl 呼び出し」等のキーワードでググれば沢山出てくる。

793 :デフォルトの名無しさん:2020/06/06(土) 11:22:08.79 ID:5FXxLs+t.net
2015年にリリースされたmacOS X 10.11 以降、SIP(System Integrity Protection)によってディレクトリ/Systemがガードされるようになった。
これにより2013年にリリースされたperl 5.13が/System配下にありガードされてアンインストールできなくなっている。
2019年にリリースされた最新のmacOS 10.15 Catalina もいまだにperl5.18のままという有様。

794 :デフォルトの名無しさん:2021/04/16(金) 16:34:02.69 ID:nmmEHRd0R
フリーランスに立ちはだかる「常駐」の壁。慣例を打ち壊し、
“テレワーク”案件3割→8割へと成長を遂げた「クラウドテック」の軌跡
https://prtimes.jp/story/detail/DBnPOktyljr
テレワークの一般化により、11月にはテレワーク可能案件83.7%へと増加。
2021年、フリーランスのトレンドは「移住&テレワーク」と予測
https://prtimes.jp/main/html/rd/p/000000045.000050142.html
リモートワーク求人専門サイト「プロリモート」がリニューアルオープン、業務委託契約の求職者と企業をマッチング
https://www.value-press.com/pressrelease/262778
1/3以上が採用につながる高マッチング率、リモートワーク×エンジニア・デザイナー専門の
人材紹介サービス「ReworkerAgent」正式リリース場所からも時間からも自由な働き方を実現!
https://www.nishinippon.co.jp/item/o/713384/
フリーランスエンジニア必見!リモートワークや週3案件があるサービス5
https://yokowork.biz/week3_engineer/
地方在住者と都市部の仕事をつなげるリモートワークに特化したリクルートサイト
 「remoteworkers」ワーカー事前募集開始
https://prtimes.jp/main/html/rd/p/000000002.000072591.html

795 :デフォルトの名無しさん:2021/10/01(金) 19:08:40.79 ID:VGp4ti15.net
新しい Windows PCに Active Perlインストールしたら perl.batになってて使いづらいので
Strawberry Perlに変更した

796 :デフォルトの名無しさん:2021/10/01(金) 20:42:39.90 ID:8GSBOhv8.net
MSYS2をいれたほうがええんちゃう?

797 :デフォルトの名無しさん:2021/10/02(土) 10:57:54.57 ID:77ApQga0.net
>>796
Git for Windowsに付属のbash(MINGW)で十分だと思う

798 :デフォルトの名無しさん:2021/10/02(土) 14:25:59.98 ID:yFRwYWli.net
Git for Windowsに付属のbashってminttyだっけ
便利過ぎて死ぬわ

799 :デフォルトの名無しさん:2021/10/02(土) 15:08:59.66 ID:HPoADLry.net
>>797
ホントにずっとそのままでええんならな。
MSYS2にしとけば、あとからpacmanでいろいろ足せる。

800 :デフォルトの名無しさん:2021/10/02(土) 15:15:17.46 ID:lWVjrMOX.net
WSLでUbuntuもよろしく

801 :デフォルトの名無しさん:2021/10/02(土) 16:46:10.72 ID:77ApQga0.net
WSLのPerlだとWin32API呼び出しできないからニーズを満たせないと思ふ

802 :デフォルトの名無しさん:2021/10/02(土) 16:55:22.91 ID:77ApQga0.net
ちなみにGit for Windows (2.33.0.windows.2) にもPerlが入ってる
Strawberry Perlは5.32までしかないのにGit for Windows版Perlは5.34
嘘だと思うなら調べてみるといい
マジだから

803 :デフォルトの名無しさん:2021/10/02(土) 17:36:32.08 ID:HPoADLry.net
バージョンが気になるならMSYS2やろ!

804 :デフォルトの名無しさん:2021/10/19(火) 22:17:39.89 ID:3qjTXPl0.net
なぜStrawberry Perlは5.34がリリースされないの?

805 :デフォルトの名無しさん:2022/06/30(木) 22:37:09 ID:paUH0cS8.net
Perl 5.36 が公開されたというのに、どのPerl関連スレも閑古鳥が鳴いていてさびしいねえ

806 :デフォルトの名無しさん:2022/07/02(土) 13:20:38.18 ID:OYFQm13f.net
Windowsでコマンドライン生活をしてると
utf-8かsjis(cp932)で改行がCRLFのテキストを扱うのがほとんど
結局コマンドプロンプトでPerlを使うのが一番使い勝手がいい…と思ってる

807 :デフォルトの名無しさん:2022/07/03(日) 05:14:11.23 ID:S0pZ0Csa.net
>>806
わかる気がする
文字コード不明なゴミ文字列を食わされたらすぐ例外を吐く繊細なPythonは日本語版Windows向きじゃないんだよな

808 :デフォルトの名無しさん:2022/07/03(日) 14:29:42.06 ID:PqlrjItE.net
馬鹿には無理

809 :デフォルトの名無しさん:2022/07/04(月) 03:27:03.23 ID:E+MehTl/.net
Perlの比較対象はsedとかawk
多段パイプでsedとawkをつなげまくってるのをPerlですっきり

810 :デフォルトの名無しさん:2022/07/04(月) 08:30:36.13 ID:CMsCi2w4.net
PowerShellと被りまくりよな

811 :デフォルトの名無しさん:2022/07/05(火) 17:14:50.15 ID:tNMhVh98.net
PowerShellはバイナリがパイプに流せないからな
バイナリを流さなくても文字コードをいろいろ使う人には不便極まりない

812 :デフォルトの名無しさん:2022/07/05(火) 20:17:14 ID:uTfoaiyz.net
PowerShellのパイプは、テキストでもバイナリでもなく、オブジェクトだが?

813 :デフォルトの名無しさん:2022/07/05(火) 21:04:46.45 ID:tNMhVh98.net
それしかないから困るという話だが?

814 :デフォルトの名無しさん:2022/07/06(水) 04:19:04.24 ID:ln/Yt+4k.net
PowerShellの文法にPerlの影響を感じる

815 :デフォルトの名無しさん:2022/07/06(水) 19:53:42 ID:ogfTX8ru.net
ピンとこないんで例示たのむ

816 :デフォルトの名無しさん:2022/07/06(水) 21:22:26.26 ID:765tXlNx.net
影響つうか、もう完全に似せにいっとるやろ。w

817 :デフォルトの名無しさん:2022/07/06(水) 21:39:44.49 ID:ln/Yt+4k.net
Perlでのワンライナーコマンドの成功体験を忘れられなかった人が、潤沢な資源を使ってPerlっぽいシェル作ったら明るいディストピアになってしまった感じ
それがPowerShell

818 :デフォルトの名無しさん:2022/07/07(木) 20:54:38 ID:cvqD9lK8.net
文法の類似性は全く感じられない…いやまじで

それはともかくWindowsでPowerShellをシェルとして使ってるとPerlと相性悪すぎる
コマンドプロンプトなら問題ないのにね

819 :デフォルトの名無しさん:2022/07/07(木) 21:37:13.86 ID:PsBgcgR1.net
Perlだけじゃないよ
PowerShellはSTDIN, STDOUTを使うあらゆる伝統的アプリと相性が悪い

820 :デフォルトの名無しさん:2022/07/08(金) 07:50:38 ID:EP1tRVB4.net
たとえば
perl -E '$a = 1; say "\$a = $a"'   …… (1)
結果はもちろん
$a = 1
コマンドプロンプトだと引用符に ' が使えないから
perl -E "$a = 1; say qq/\$a = $a/"
とかするわけだけど、PowerShellなら ' も使えるから(1)でいけると思うわな
ところが結果は
SCALAR(0xf00e68)
さすがにこれは凄過ぎる

821 :デフォルトの名無しさん:2023/11/07(火) 18:45:33.47 ID:bMdWZdKr.net
https://github.com/StrawberryPerl/Perl-Dist-Strawberry/
V5.38が出ていますよ

822 :デフォルトの名無しさん:2023/11/20(月) 03:36:08.26 ID:BbmiohCI.net
バイナリの種類が減ったけどどうしたんだろう_?
ZIP版がなくなったのはちょっと寂しい
いろいろビルドするの大変だったのかな…
いずれにせよWidows用処理系のバイナリが提供されるのはありがたい

823 :デフォルトの名無しさん:2023/11/21(火) 15:33:51.20 ID:qJoihvDX.net
>>820
Windows PowerShell 5.1 ではこの通りだったけど
最新の PowerShell 7.4 ではちゃんと
$a = 1
になるように改善されてる

824 :デフォルトの名無しさん:2023/11/27(月) 18:46:28.12 ID:17nvp8y6.net
$ perl -e '$a="abc"; $a =~ s/(.*)/[$1]/g; print $a . "\n"'
[abc][]

なんで後ろに[]がついちゃうの?
後ろに[]をつけないにはどうすればいいの?

825 :デフォルトの名無しさん:2023/11/28(火) 01:13:40.51 ID:cm6gsnuQ.net
Powershell で、Ruby の1-liner を実行してみた。
%Q() は、"〜" と囲む文字列と同じ

ruby -e 're=/(.*)/; puts %Q(abc).sub(re){ %Q([#$1]) }'
[abc]

ruby -e 're=/(.*)/; puts %Q(abc).gsub(re){ %Q([#$1]) }'
[abc][]

sub は置換を1回だけ、
gsub は複数回置換するから、2回マッチしているようだ

これは正規表現のスレで聞いた方が良いかも

826 :825:2023/11/28(火) 01:36:42.16 ID:Nm9lZ/Iv.net
Ruby でやったら、sub/gsub のどちらも空文字列にもマッチする!
%Q() が、"" と同じで空文字列

re=/(.*)/;
puts %Q().sub(re){ %Q([#$1]) }
[]

re=/(.*)/;
puts %Q().gsub(re){ %Q([#$1]) }
[]

Perl はよく知らないけど、正規表現の
s/(.*)/[$1]/g
の、s かg が、複数回マッチのオプションなのでは?

827 :デフォルトの名無しさん:2023/11/28(火) 07:55:53.20 ID:n24A5w3b.net
gが複数回オプション

828 :デフォルトの名無しさん:2023/11/28(火) 11:38:18.70 ID:86akrCdn.net
s/(.*)/[$1]/

または

s/(.+)/[$1]/g

829 :デフォルトの名無しさん:2023/11/28(火) 12:30:37.56 ID:vIU65Zk5.net
複数回マッチはそれはそうなんだけど、
.*で全部にマッチするのだから一回しかマッチしないはずでしょう?

830 :デフォルトの名無しさん:2023/11/29(水) 00:11:18.99 ID:Yve6WB+Q.net
この話題は以後、以下のスレに移動しました!

Regular Expression(正規表現) Part16
https://mevius.5ch.net/test/read.cgi/tech/1635936601/962-

831 :デフォルトの名無しさん:2024/02/09(金) 17:07:25.90 ID:LEmbefGZ.net
V5.38.2
32ビット
https://github.com/StrawberryPerl/Perl-Dist-Strawberry/releases/tag/SP_5382_32bit
64ビット
https://github.com/StrawberryPerl/Perl-Dist-Strawberry/releases/tag/SP_53822_64bit

832 :デフォルトの名無しさん:2024/02/13(火) 13:45:23.58 ID:INZlTde8.net
>>831
https://strawberryperl.com/releases.html
には最近のバイナリはないね。

ビルドに使われた external tools and libraries について見ると
Perl 5.36.1.1 (2023-07-20)のリリースで MingW gcc-13.1.0 まで上がり
Jul 11, 2023 の dev_5.38.0_20230705_gcc13 までは(同じ?) gcc-13.1 (winlibs release 5)
が使われていたけどこれはビルドに問題があったようで、
For a list of known test failures and build issues see
Issues ・ StrawberryPerl/Perl-Dist-Strawberry ・ GitHub
https://github.com/StrawberryPerl/Perl-Dist-Strawberry/issues?q=is%3Aissue+is%3Aopen+label%3Aperl5.36

Nov 28, 2023 の dev release 5.38 32-bit cut-down 以降は
Perl 5.32.1.1 (2021-01-24) のときの gcc is version 8.3.0 を含む c/ ディレクトリに戻してビルドするようになったとのこと、
またzip版のバイナリはリリースされなくなったし
この2年でなんか色々変わってきたな、Strawberry Perl も一つの節目なのかね

今後Strawberry Perlの動向は https://strawberryperl.com/ の方ではなくgithub.comの方
https://github.com/StrawberryPerl/Perl-Dist-Strawberry/releases
を見るべきだね

222 KB
新着レスの表示

掲示板に戻る 全部 前100 次100 最新50
名前: E-mail (省略可) :

read.cgi ver 2014.07.20.01.SC 2014/07/20 D ★