Perlについて
質問スレはあるけど、Perl自身について語るスレがないので、立てました。 フォーマットを %.16f にしたら 2.999... のように出たよ。 まあでも環境によって違うかも知れないけどね。 ある整数$nを10進表示するために必要な桁数を求めるためにlog($n)/log(10)を使ったのが良くなかった。 小難しいこと考えずにperlらしく素直に文字列としてlength($n)で桁数を取得するのが正解。 Perlじゃなくても、浮動小数点数なら残当。 結局、10で何回割れるか数えるのが一番合理的なんかねえ。 問題の本質は、整数と実数の型区別がない言語において、3なのか2.99…なのか簡単に識別する手段がないこと。 PerlはCPU依存の浮動小数ではなく、独自の浮動小数を実装している。 計算速度がCやJava劣るのは、単にPerlがスクリプト言語だからというだけではない。 独自な浮動小数には良い面も悪い面もあるが、浮動小数の精度を変更できるのは大きな強み。 以下は、浮動小数の精度を10進換算100桁にするための宣言。 use bignum (a => 100); >>786 ないな。一応 0.5 足してから int() で整数化すれば四捨五入になるけどね。自分でそう書かないとダメだったと思う。誰かがモジュール作って関数化してそうだけど。 >>786 んなもん、そもそもあるわけがない。 浮動小数点数表現はおろか、有理数表現でも完全に表せない値は当たり前なんだから。 「Git 2.25」リリース、「git sparse-checkout」コマンドの追加や細かい機能強化が行われる https://mag.osdn.jp/20/01/14/171500 内部的な変更としては、「git add「コマンドの「-i」オプションをPerlベースからCに書き換える作業をスタートさせた。 それはWebのページに埋め込むような感じで使えるかという意味? PHPのプログラム中からPerlを呼び出すのであれば「php perl 呼び出し」等のキーワードでググれば沢山出てくる。 2015年にリリースされたmacOS X 10.11 以降、SIP(System Integrity Protection)によってディレクトリ/Systemがガードされるようになった。 これにより2013年にリリースされたperl 5.13が/System配下にありガードされてアンインストールできなくなっている。 2019年にリリースされた最新のmacOS 10.15 Catalina もいまだにperl5.18のままという有様。 新しい Windows PCに Active Perlインストールしたら perl.batになってて使いづらいので Strawberry Perlに変更した >>796 Git for Windowsに付属のbash(MINGW)で十分だと思う Git for Windowsに付属のbashってminttyだっけ 便利過ぎて死ぬわ >>797 ホントにずっとそのままでええんならな。 MSYS2にしとけば、あとからpacmanでいろいろ足せる。 WSLのPerlだとWin32API呼び出しできないからニーズを満たせないと思ふ ちなみにGit for Windows (2.33.0.windows.2) にもPerlが入ってる Strawberry Perlは5.32までしかないのにGit for Windows版Perlは5.34 嘘だと思うなら調べてみるといい マジだから なぜStrawberry Perlは5.34がリリースされないの? Perl 5.36 が公開されたというのに、どのPerl関連スレも閑古鳥が鳴いていてさびしいねえ Windowsでコマンドライン生活をしてると utf-8かsjis(cp932)で改行がCRLFのテキストを扱うのがほとんど 結局コマンドプロンプトでPerlを使うのが一番使い勝手がいい…と思ってる >>806 わかる気がする 文字コード不明なゴミ文字列を食わされたらすぐ例外を吐く繊細なPythonは日本語版Windows向きじゃないんだよな Perlの比較対象はsedとかawk 多段パイプでsedとawkをつなげまくってるのをPerlですっきり PowerShellはバイナリがパイプに流せないからな バイナリを流さなくても文字コードをいろいろ使う人には不便極まりない PowerShellのパイプは、テキストでもバイナリでもなく、オブジェクトだが? PowerShellの文法にPerlの影響を感じる Perlでのワンライナーコマンドの成功体験を忘れられなかった人が、潤沢な資源を使ってPerlっぽいシェル作ったら明るいディストピアになってしまった感じ それがPowerShell 文法の類似性は全く感じられない…いやまじで それはともかくWindowsでPowerShellをシェルとして使ってるとPerlと相性悪すぎる コマンドプロンプトなら問題ないのにね Perlだけじゃないよ PowerShellはSTDIN, STDOUTを使うあらゆる伝統的アプリと相性が悪い たとえば perl -E '$a = 1; say "\$a = $a"' …… (1) 結果はもちろん $a = 1 コマンドプロンプトだと引用符に ' が使えないから perl -E "$a = 1; say qq/\$a = $a/" とかするわけだけど、PowerShellなら ' も使えるから(1)でいけると思うわな ところが結果は SCALAR(0xf00e68) さすがにこれは凄過ぎる バイナリの種類が減ったけどどうしたんだろう_? ZIP版がなくなったのはちょっと寂しい いろいろビルドするの大変だったのかな… いずれにせよWidows用処理系のバイナリが提供されるのはありがたい >>820 Windows PowerShell 5.1 ではこの通りだったけど 最新の PowerShell 7.4 ではちゃんと $a = 1 になるように改善されてる $ perl -e '$a="abc"; $a =~ s/(.*)/[$1]/g; print $a . "\n"' [abc][] なんで後ろに[]がついちゃうの? 後ろに[]をつけないにはどうすればいいの? 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回マッチしているようだ これは正規表現のスレで聞いた方が良いかも Ruby でやったら、sub/gsub のどちらも空文字列にもマッチする! %Q() が、"" と同じで空文字列 re=/(.*)/; puts %Q().sub(re){ %Q([#$1]) } [] re=/(.*)/; puts %Q().gsub(re){ %Q([#$1]) } [] Perl はよく知らないけど、正規表現の s/(.*)/[$1]/g の、s かg が、複数回マッチのオプションなのでは? s/(.*)/[$1]/ または s/(.+)/[$1]/g 複数回マッチはそれはそうなんだけど、 .*で全部にマッチするのだから一回しかマッチしないはずでしょう? >>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 を見るべきだね read.cgi ver 07.4.7 2024/03/31 Walang Kapalit ★ | Donguri System Team 5ちゃんねる