X



Perlについて
0782デフォルトの名無しさん垢版2020/01/08(水) 19:45:30.94ID:naqRCa+g
あー。%s か。
0783デフォルトの名無しさん垢版2020/01/09(木) 10:06:14.57ID:Gxf4nQ6S
フォーマットを %.16f にしたら 2.999... のように出たよ。
まあでも環境によって違うかも知れないけどね。
0784デフォルトの名無しさん垢版2020/01/09(木) 13:01:10.00ID:CwRR9iY2
ある整数$nを10進表示するために必要な桁数を求めるためにlog($n)/log(10)を使ったのが良くなかった。
小難しいこと考えずにperlらしく素直に文字列としてlength($n)で桁数を取得するのが正解。
0785デフォルトの名無しさん垢版2020/01/09(木) 20:26:28.10ID:C+kuIm3o
Perlじゃなくても、浮動小数点数なら残当。
結局、10で何回割れるか数えるのが一番合理的なんかねえ。
0786デフォルトの名無しさん垢版2020/01/10(金) 04:53:14.77ID:EqsvE6i0
問題の本質は、整数と実数の型区別がない言語において、3なのか2.99…なのか簡単に識別する手段がないこと。
0787デフォルトの名無しさん垢版2020/01/10(金) 05:45:42.75ID:EqsvE6i0
PerlはCPU依存の浮動小数ではなく、独自の浮動小数を実装している。
計算速度がCやJava劣るのは、単にPerlがスクリプト言語だからというだけではない。
独自な浮動小数には良い面も悪い面もあるが、浮動小数の精度を変更できるのは大きな強み。
以下は、浮動小数の精度を10進換算100桁にするための宣言。

use bignum (a => 100);
0788デフォルトの名無しさん垢版2020/01/11(土) 16:09:16.79ID:j7/IvFvR
>>786
ないな。一応 0.5 足してから int() で整数化すれば四捨五入になるけどね。自分でそう書かないとダメだったと思う。誰かがモジュール作って関数化してそうだけど。
0789デフォルトの名無しさん垢版2020/01/11(土) 20:26:50.93ID:usOdB8FH
>>786
んなもん、そもそもあるわけがない。
浮動小数点数表現はおろか、有理数表現でも完全に表せない値は当たり前なんだから。
0790デフォルトの名無しさん垢版2020/01/15(水) 02:51:20.42ID:pd5/9Sat
「Git 2.25」リリース、「git sparse-checkout」コマンドの追加や細かい機能強化が行われる
https://mag.osdn.jp/20/01/14/171500
内部的な変更としては、「git add「コマンドの「-i」オプションをPerlベースからCに書き換える作業をスタートさせた。
0792デフォルトの名無しさん垢版2020/02/10(月) 18:58:18.71ID:TxaBglIi
それはWebのページに埋め込むような感じで使えるかという意味?
0793デフォルトの名無しさん垢版2020/02/11(火) 17:48:20.39ID:ix+UlUL8
PHPのプログラム中からPerlを呼び出すのであれば「php perl 呼び出し」等のキーワードでググれば沢山出てくる。
0794デフォルトの名無しさん垢版2020/06/06(土) 11:22:08.79ID:5FXxLs+t
2015年にリリースされたmacOS X 10.11 以降、SIP(System Integrity Protection)によってディレクトリ/Systemがガードされるようになった。
これにより2013年にリリースされたperl 5.13が/System配下にありガードされてアンインストールできなくなっている。
2019年にリリースされた最新のmacOS 10.15 Catalina もいまだにperl5.18のままという有様。
0795デフォルトの名無しさん垢版2021/10/01(金) 19:08:40.79ID:VGp4ti15
新しい Windows PCに Active Perlインストールしたら perl.batになってて使いづらいので
Strawberry Perlに変更した
0797デフォルトの名無しさん垢版2021/10/02(土) 10:57:54.57ID:77ApQga0
>>796
Git for Windowsに付属のbash(MINGW)で十分だと思う
0798デフォルトの名無しさん垢版2021/10/02(土) 14:25:59.98ID:yFRwYWli
Git for Windowsに付属のbashってminttyだっけ
便利過ぎて死ぬわ
0800デフォルトの名無しさん垢版2021/10/02(土) 15:15:17.46ID:lWVjrMOX
WSLでUbuntuもよろしく
0801デフォルトの名無しさん垢版2021/10/02(土) 16:46:10.72ID:77ApQga0
WSLのPerlだとWin32API呼び出しできないからニーズを満たせないと思ふ
0802デフォルトの名無しさん垢版2021/10/02(土) 16:55:22.91ID:77ApQga0
ちなみにGit for Windows (2.33.0.windows.2) にもPerlが入ってる
Strawberry Perlは5.32までしかないのにGit for Windows版Perlは5.34
嘘だと思うなら調べてみるといい
マジだから
0805デフォルトの名無しさん垢版2022/06/30(木) 22:37:09.92ID:paUH0cS8
Perl 5.36 が公開されたというのに、どのPerl関連スレも閑古鳥が鳴いていてさびしいねえ
0806デフォルトの名無しさん垢版2022/07/02(土) 13:20:38.18ID:OYFQm13f
Windowsでコマンドライン生活をしてると
utf-8かsjis(cp932)で改行がCRLFのテキストを扱うのがほとんど
結局コマンドプロンプトでPerlを使うのが一番使い勝手がいい…と思ってる
0807デフォルトの名無しさん垢版2022/07/03(日) 05:14:11.23ID:S0pZ0Csa
>>806
わかる気がする
文字コード不明なゴミ文字列を食わされたらすぐ例外を吐く繊細なPythonは日本語版Windows向きじゃないんだよな
0808デフォルトの名無しさん垢版2022/07/03(日) 14:29:42.06ID:PqlrjItE
馬鹿には無理
0809デフォルトの名無しさん垢版2022/07/04(月) 03:27:03.23ID:E+MehTl/
Perlの比較対象はsedとかawk
多段パイプでsedとawkをつなげまくってるのをPerlですっきり
0811デフォルトの名無しさん垢版2022/07/05(火) 17:14:50.15ID:tNMhVh98
PowerShellはバイナリがパイプに流せないからな
バイナリを流さなくても文字コードをいろいろ使う人には不便極まりない
0817デフォルトの名無しさん垢版2022/07/06(水) 21:39:44.49ID:ln/Yt+4k
Perlでのワンライナーコマンドの成功体験を忘れられなかった人が、潤沢な資源を使ってPerlっぽいシェル作ったら明るいディストピアになってしまった感じ
それがPowerShell
0818デフォルトの名無しさん垢版2022/07/07(木) 20:54:38.67ID:cvqD9lK8
文法の類似性は全く感じられない…いやまじで

それはともかくWindowsでPowerShellをシェルとして使ってるとPerlと相性悪すぎる
コマンドプロンプトなら問題ないのにね
0819デフォルトの名無しさん垢版2022/07/07(木) 21:37:13.86ID:PsBgcgR1
Perlだけじゃないよ
PowerShellはSTDIN, STDOUTを使うあらゆる伝統的アプリと相性が悪い
0820デフォルトの名無しさん垢版2022/07/08(金) 07:50:38.59ID:EP1tRVB4
たとえば
perl -E '$a = 1; say "\$a = $a"'   …… (1)
結果はもちろん
$a = 1
コマンドプロンプトだと引用符に ' が使えないから
perl -E "$a = 1; say qq/\$a = $a/"
とかするわけだけど、PowerShellなら ' も使えるから(1)でいけると思うわな
ところが結果は
SCALAR(0xf00e68)
さすがにこれは凄過ぎる
0822デフォルトの名無しさん垢版2023/11/20(月) 03:36:08.26ID:BbmiohCI
バイナリの種類が減ったけどどうしたんだろう_?
ZIP版がなくなったのはちょっと寂しい
いろいろビルドするの大変だったのかな…
いずれにせよWidows用処理系のバイナリが提供されるのはありがたい
0823デフォルトの名無しさん垢版2023/11/21(火) 15:33:51.20ID:qJoihvDX
>>820
Windows PowerShell 5.1 ではこの通りだったけど
最新の PowerShell 7.4 ではちゃんと
$a = 1
になるように改善されてる
0824デフォルトの名無しさん垢版2023/11/27(月) 18:46:28.12ID:17nvp8y6
$ perl -e '$a="abc"; $a =~ s/(.*)/[$1]/g; print $a . "\n"'
[abc][]

なんで後ろに[]がついちゃうの?
後ろに[]をつけないにはどうすればいいの?
0825デフォルトの名無しさん垢版2023/11/28(火) 01:13:40.51ID:cm6gsnuQ
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回マッチしているようだ

これは正規表現のスレで聞いた方が良いかも
0826825垢版2023/11/28(火) 01:36:42.16ID:Nm9lZ/Iv
Ruby でやったら、sub/gsub のどちらも空文字列にもマッチする!
%Q() が、"" と同じで空文字列

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

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

Perl はよく知らないけど、正規表現の
s/(.*)/[$1]/g
の、s かg が、複数回マッチのオプションなのでは?
0827デフォルトの名無しさん垢版2023/11/28(火) 07:55:53.20ID:n24A5w3b
gが複数回オプション
0829デフォルトの名無しさん垢版2023/11/28(火) 12:30:37.56ID:vIU65Zk5
複数回マッチはそれはそうなんだけど、
.*で全部にマッチするのだから一回しかマッチしないはずでしょう?
0832デフォルトの名無しさん垢版2024/02/13(火) 13:45:23.58ID:INZlTde8
>>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
を見るべきだね
レスを投稿する


ニューススポーツなんでも実況