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

Perlについての質問箱 65箱目

1 :デフォルトの名無しさん:2021/03/27(土) 23:52:13.17 ID:vQS/WYw3.net
CGIについての質問は板違いです。WEBプログラミング板でどうぞ。
CGIとPerlの区別がつかない人もWEBプログラミング板に行ってください。
(WEBプログラミング板: https://medaka.5ch.net/php/

このスレでは(CGI以外の)純粋にPerlのみに関係する質問を取り扱っていこうと思います。
スレ違いの質問にはスルーか、速やかな誘導をお願いします。
荒らしはスルー推奨。

"The duct tape of the Internet" こと、Perlについての質問箱です。
"There's more than one way to do it" ということで、
Perlの奥深さについて皆で語り合い、追求してまいりましょう。

www.perl.org/get.html
Download Latest Stable Source (5.32.1)

▼前スレ
Perlについての質問箱 62箱目
http://toro.5ch.net/test/read.cgi/tech/1385039352/
Perlについての質問箱 63箱目
https://mevius.5ch.net/test/read.cgi/tech/1392820583/
Perlについての質問箱 64箱目
https://mevius.5ch.net/test/read.cgi/tech/1548981877/

2 :デフォルトの名無しさん:2021/03/27(土) 23:54:34.17 ID:vQS/WYw3.net
2以降テンプレNGワードで貼れず。
見たい人は前スレ参照してくださいな。

3 :デフォルトの名無しさん:2021/04/29(木) 02:22:04.28 ID:vjsl7cGC.net
LinuxやmacOSのperlは、Term::ReadLineの $term->readline() で日本語などのマルチバイト文字の入力結果が文字化けしてしまうが、
cpanなどを使ってTerm::ReadLine::Gnuをインストールすることで回避できる
Linuxの場合はTerm::ReadLine::Gnuをビルドするためにlibreadline-devも必要になる

4 :デフォルトの名無しさん:2021/04/29(木) 14:16:29.56 ID:gAM2tnQs.net
ttps://blog.outer-inside.net/2021/03/perl-5.34-delta.html

5 :デフォルトの名無しさん:2021/04/29(木) 23:41:19.05 ID:YN7Pg05+.net
CentOS7 だと yum install perl-Term-ReadLine-Gnu でインストールできたよ。
RPM使ってるOSはこれで行けるのではないかな。

6 :デフォルトの名無しさん:2021/04/29(木) 23:47:16.34 ID:YN7Pg05+.net
インストールすると perl -d でのデバッグ時も Ctrl+P だの Ctrl+N だの矢印キーだの使えるようになっていいね。

7 :デフォルトの名無しさん:2021/04/29(木) 23:58:36.30 ID:YN7Pg05+.net
Ubuntu だとこれでインストールできた。Debian 系はこれでできそう。
sudo apt install libterm-readline-gnu-perl

8 :デフォルトの名無しさん:2021/05/23(日) 06:37:34.25 ID:8ydzk+Rl.net
perl 5.34.0 がmacOSのhomebrewにきたけど、cpanがなんか変

9 :デフォルトの名無しさん:2021/05/23(日) 06:43:35.02 ID:8ydzk+Rl.net
cpanだけじゃなくてperldocもだった
perl5.34.0ではなくmacOSに最初から入っている古いバージョンのperlを呼び出してしまうようだ
自力で回避するには古いperlが呼ばれないようにスクリプトを書き換えるなどの作業が必要

10 :デフォルトの名無しさん:2021/07/06(火) 11:11:57.65 ID:yWww0KpQ.net
PerlスクリプトをVSCodeで対話デバッグするにはどうしたらいいですか?

11 :デフォルトの名無しさん:2021/07/07(水) 01:34:33.25 ID:bUHYGk47.net
例えば、Ruby では、p, pp を付けてオブジェクトの内容を確認できるので、デバッグまではしない。
Break Point で止めたり、デバッグしたいのなら、誰かが作った拡張機能を探す

require "csv"

input_str = <<"EOT"
-0.0,1.2.3
9..9,-0
EOT

csv = CSV.new( input_str )
csv.convert( :numeric ) # 数値型へ変換する

line_num = 0 # 行番号

csv.each do |row|
line_num += 1
p [ line_num, row[ 0 ].class, row[ 1 ].class ]
end

出力
[1, Float, String]
[2, String, Integer]

つまり、1.2.3, 9..9 は、型変換に失敗して、文字列のまま

12 :デフォルトの名無しさん:2021/07/07(水) 03:43:38.09 ID:XEShr1cy.net
>>11
情報量ぜろ!w

13 :デフォルトの名無しさん:2021/07/08(木) 01:00:53.27 ID:gY+tXenb.net
>>11
死ね

14 :デフォルトの名無しさん:2021/07/08(木) 10:49:11.06 ID:nEG9xKCJ.net
uby厨は死んで良いが
perlもいい加減やめた方がいい言語
新規で使うなんてあり得ない

15 :デフォルトの名無しさん:2021/07/08(木) 15:43:39.51 ID:PzoSTOmc.net
Perlは「可読性?何それうまいの」的なノリでやる自分の作業用として重宝する

16 :デフォルトの名無しさん:2021/07/10(土) 14:27:06.61 ID:jbIVp5r2.net
小規模な一次的に使うツールみたいなのは今でも新規で作ることあるけどね
シェルスクリプトで書くと余計にぐちゃぐちゃで分かり辛くなったり遅くなりそうな場合とか

17 :デフォルトの名無しさん:2021/08/18(水) 18:30:37.25 ID:VDhd+cn2.net
元々 awk や sed 駆使したシェル芸を代替するためのコマンドだから本来の地位に戻っただけとも言える

ディレクトリ掘って依存設定ファイル作らないとモジュールのインストールもできない JavaScript とか Go と違って cpanm で必要なモジュール放り込めばファイル一個で雑に動くからやっつけ仕事には未だによく使う

18 :デフォルトの名無しさん:2021/08/18(水) 19:15:57.96 ID:bMnOTwac.net
褒めてんだかけなしてるんだか

19 :デフォルトの名無しさん:2021/08/18(水) 20:46:15.60 ID:8PJNJj34.net
ダクトテープがダクトテープとしてよく働いてくれる、というのは最高の賛辞やろ。
キレイなことだけが誉め言葉ではない。

20 :デフォルトの名無しさん:2021/08/18(水) 21:14:05.44 ID:nwD63Gpn.net
Perlはホワイトハッカー御用達の言語でしょ

21 :デフォルトの名無しさん:2021/08/21(土) 00:23:42.38 ID:Zmo3uqZM.net
あらまオレ様はホワイトハッカーだったの?

22 :デフォルトの名無しさん:2021/08/21(土) 05:16:45.58 ID:dH+vFBpp.net
黒ぃハッカー

23 :デフォルトの名無しさん:2021/09/12(日) 04:25:38.35 ID:RfonpbSj.net
MediawikiのXMLをパースするプログラムを書いてるんですが、
人間が日常的に使っている[[自然言語]]を[[コンピュータ]]に処理させる一連の技術であり
という文章は[[]]内の文字を<a href>タグで置換することはできたのですが、

応用例としては[[入力予測|予測変換]]、[[インプット メソッド エディタ|IME]]などの文字変換が挙げられる。
このように[[*1|*2]]と2重に入っている文字列の置換がどうしてもうまくいきません。
この場合は、<a href=*2>*2</a>と置換したいのですが、どうしたらいいでしょうか?

24 :デフォルトの名無しさん:2021/09/12(日) 05:49:55.32 ID:zHKafq1A.net
s/[[(.*?(|(`*?))]]/$3 ? $3 : $1/ge
かな?試してないけど。

25 :デフォルトの名無しさん:2021/09/12(日) 05:51:13.73 ID:zHKafq1A.net
あ、ごめん。| の所は \| ね。

26 :デフォルトの名無しさん:2021/09/12(日) 05:52:45.30 ID:zHKafq1A.net
[と]も直前に\要るね。

27 :デフォルトの名無しさん:2021/09/12(日) 07:06:52.84 ID:jZMYjdNi.net
なぜ、Perl のXML パーサーを使わないの?

例えばRuby なら、Nokogiri と言う、HTML/XML パーサーがある。
内部的には、Libxml2 モジュールを使っているのかな?

たぶん、Perlにもあるはず

28 :デフォルトの名無しさん:2021/09/12(日) 15:32:25.57 ID:89s8PaYB.net
パースするのがXMLじゃないからだな。

29 :デフォルトの名無しさん:2021/09/13(月) 10:13:09.30 ID:E86z1ItW.net
s/\[\[(.*?(\|(`*?)))\]\]/$3 ? $3 : $1/ge
のパターンで試してみましたが、結果は「インプット メソッド エディタ|IME」
と置換されてしまいます。
(.*?)の部分で、|以降の文字列も含めてマッチングされているようで
それ以降のパターンマッチが効いてないようです。

30 :デフォルトの名無しさん:2021/09/13(月) 10:38:07.93 ID:AXNI3otr.net
このへんで確認しろ。https://qiita.com/aqril_1132/items/c185c7ad84c129e5a2df

31 :デフォルトの名無しさん:2021/09/13(月) 23:15:02.86 ID:vef3NqnY.net
strawberry perl が34をリリースしないのはなぜだ

32 :デフォルトの名無しさん:2021/09/15(水) 19:04:24.79 ID:fHmj5hYp.net
スクレイピングすると地獄へ落ちるって本当ですか?

33 :デフォルトの名無しさん:2021/09/15(水) 23:51:59.00 ID:3vtMVT28.net
落ちたり落ちなかったり

34 :デフォルトの名無しさん:2021/09/15(水) 23:54:27.28 ID:3vtMVT28.net
>>29
それ . が ` になってるよ。直してやってみたらちゃんとできたよ。

$ echo '[[インプット メソッド エディタ|IME]]' | perl -pe 's/\[\[(.*?(\|(.*?)))\]\]/$3 ? $3 : $1/ge'
IME
$

35 :デフォルトの名無しさん:2021/09/18(土) 03:37:45.50 ID:YPBxfQEw.net
スクレイピングの勉強するのですが、下手するとF5アタックになるとかの法的リスクと回避法を重視している入門書ってありますか?
今の所やりたいことは、特定の市町村の5年分気温気象データを収集して自分用に加工
近所のコインランドリーの稼働データを集計して空いてる確率が高い時間帯を調べるの2つです
前者は膨大なデータを取得する必要があります
後者は10分から20分おきにアクセスすることになります

36 :デフォルトの名無しさん:2021/09/18(土) 03:45:17.73 ID:VuuEM7MI.net
まるぽ

37 :デフォルトの名無しさん:2021/09/18(土) 18:17:05.22 ID:J85RgKD5.net
頭のおかしい人に以下のようなことを言われました

>>基本、スクレイピングは営業妨害との戦い。
>>どの本にも、そう書いてある。
>>スクレイピングを推奨する本はない

具体的な書籍名を教えてください


>>5ch は、マルチポスト禁止!
>>同じ質問を、複数のスレや外部のサイトに書いてはいけない

どこでそんなルールが決まっているのでしょうか?

38 :デフォルトの名無しさん:2021/10/02(土) 06:38:43.82 ID:b+9bP+Kg.net
socketでデータを受信すると、
データの途中に「残りバイト数」が挿入されてしまうことがあるんだけど、これはどう取り除けばいいの?
例えばこんな感じになる
wtjjpodjtjtjaajjgjjaatwdjjg@gptjwttdmttjmttpwm'jajt
1f
1234567890123456789012345678901
残りバイト数(1f)を16進数で表した文字列が挿入されてる
元々こういうデータだった場合と、挿入されてこうなった場合の区別が付かない
readline()でもread()でも結果は同じだった

39 :デフォルトの名無しさん:2021/10/02(土) 14:54:42.04 ID:lWVjrMOX.net
>>38
なにそれ?文字で挿入されるの?そんなの初めて聞いたなあ。送る側で入れてるだけなのでは?(そうでなければ呼んでるライブラリが何かおかしいか)

socket 関係はバッファリング避けるために sysread() 使った方が良い場合があるよ。
select で入力待ちをした後で読み込みとかね。
後は気を付けるとしたらノンブロッキングにしてるかどうかかな。

40 :デフォルトの名無しさん:2021/10/03(日) 14:58:34.95 ID:ngVDhrCg.net
activeperlからStrawberryperlへ移行を検討しているのですが、
activeperlで使用しているモジュール( Win32::EventLog::Message)が
cpanから削除されておりbackpanには残っていました。
https://cpan.metacpan.org/authors/id/D/DA/DAVEROTH/
上記から、Win32-EventLog-Message.tar.gzはダウンロードできたのですが、
当方perl初心者でStrawberryperlへのインストール方法がわからず困っております。
どなたかインストール方法についてご教授お願い致します

41 :38:2021/10/03(日) 15:42:34.37 ID:Etawdk1b.net
お騒がせしました
Transfer-Encording: chunked
ってやつだった
これかどうかを確認して別処理か…面倒くさあい

42 :デフォルトの名無しさん:2021/10/03(日) 20:15:27.91 ID:s9ykO0bu.net
>>40
マジレスするとperlを捨てるチャンス

43 :デフォルトの名無しさん:2021/10/03(日) 20:18:20.58 ID:prztZm/y.net
>>42
そのかわりに何を勧めんの?
Windowsのイベントログを扱いたいヤツに。

44 :デフォルトの名無しさん:2021/10/03(日) 22:00:09.32 ID:ngVDhrCg.net
40です。
通常Makefile.PLでインストールするようなのですが、
上記tar.gzには、Makefile.PLがなく、
Message.pmがあるのですが、
これは、strawberryperlにはインストールできないのでしょうか?

45 :デフォルトの名無しさん:2021/10/03(日) 22:14:43.18 ID:BlQUkwCi.net
できるかどうか自分で試すしかない
他人にやってもらおうってのは虫が良すぎ

46 :デフォルトの名無しさん:2021/10/21(木) 12:31:10.82 ID:gLUi04Um.net
my $str = "<img src=\"./test1.png\" style=\"width:100px;height:100px\">";
./test1.pngの部分を./test2.pngに置換するにはどうやればいいんですか?

my $str =~ s/test1.png/test2.png/g;というのじゃなくてtest1.pngの部分がどんな
画像URLでも置換できるように

47 :デフォルトの名無しさん:2021/10/21(木) 12:49:12.67 ID:hpQkeFJy.net
test2.pngを変数にすればいいだけ

48 :デフォルトの名無しさん:2021/10/21(木) 12:53:02.13 ID:gLUi04Um.net
いやそうじゃなくて正規表現使ったやつで

49 :デフォルトの名無しさん:2021/10/21(木) 13:11:31.93 ID:hpQkeFJy.net
s/src=".+?"/src="test2.png"/

50 :デフォルトの名無しさん:2021/11/08(月) 18:04:06.58 ID:H7HFgRE2.net
{a}ab{abc}
{}で囲まれたaだけdに置き換えたい
どうやればいいんですか?

{d}ab{dbc}になればいいってこと

51 :デフォルトの名無しさん:2021/11/08(月) 18:59:06.40 ID:JELTvgr2.net
それだけじゃ分かんない
全ての条件を書かないと
それが解なんだけどね

52 :デフォルトの名無しさん:2021/11/08(月) 22:10:38.33 ID:H7HFgRE2.net
本当にやりたいのは
my $line = "<img&#160;src='aaa.png'&#160;width='300'&#160;height='200'>&#160;画像説明";
<>の中にある全ての&#160;を半角スペースに置き換えたいっす

実行結果は<img src='aaa.png' width='300' height='200'>&#160;画像説明となればいいっす

送信したときブラウザが勝手に半角スペースを&#160;に変換しちゃうみたいなのでタグ内の半角スペースだけ元に戻したいから

53 :デフォルトの名無しさん:2021/11/09(火) 00:02:06.84 ID:J0R6dl97.net
sub f {
my $s = shift;
$s =~ s/ / /g;
return "<$s>";
}

$line =~ s/<(.+?)>/f($1)/eg;

54 :デフォルトの名無しさん:2021/11/09(火) 00:03:21.78 ID:J0R6dl97.net
sub f {
my $s = shift;
$s =~ s/&#160;/ /g;
return "<$s>";
}

$line =~ s/<(.+?)>/f($1)/eg;

55 :デフォルトの名無しさん:2021/11/09(火) 00:36:22.21 ID:bwlPyLJQ.net
ありがとうございました

56 :デフォルトの名無しさん:2022/01/06(木) 18:30:59.16 ID:LRBDWWjE.net
printで出力すると/nで改行できません
二重引用符で括ってもできません
なにをやっても/nがそのまま表示されます
調べても二重引用符で括れとか〈br〉とかしか出てきません

57 :デフォルトの名無しさん:2022/01/06(木) 18:45:34.18 ID:qZej6RdN.net
スラッシュnは改行じゃないからな

58 :デフォルトの名無しさん:2022/01/06(木) 20:07:08.37 ID:HyMw34ze.net
斬新な質問だ。w
斜めの縦棒を日本語キーボードで入力しろ、と言われたらたしかにそうなるかもだが。

59 :デフォルトの名無しさん:2022/01/07(金) 00:42:46.84 ID:+rjvm48j.net
>>56
\n でやってみな。

60 :デフォルトの名無しさん:2022/01/07(金) 00:45:13.42 ID:+rjvm48j.net
>>58
やはり \ (\x5c) の歴史的な事情を知らないと分からないのだろうな。

61 :56:2022/01/07(金) 18:30:12.92 ID:j8/UZCr2.net
¥マークを\に変えたらできました
紛らわしいもんですね

62 :デフォルトの名無しさん:2022/01/08(土) 10:43:35.54 ID:mAjXIrhA.net
そう。紛らわしいんだ。

63 :デフォルトの名無しさん:2022/01/08(土) 23:05:04.70 ID:Df3tzX0P.net
逆スラッシュは、日本語・Windows 用のキーボードで、半角の\ と同じ

半角の\ と見た目が同じでも、異なる文字コードの文字があるので、
それは使わないようにすべき!

64 :デフォルトの名無しさん:2022/01/09(日) 19:38:34.71 ID:C8vy8rqb.net
プログラムコードの中に全角文字を入れない
というだけで十分では?

65 :デフォルトの名無しさん:2022/01/09(日) 20:41:20.51 ID:G7UaEudb.net
そんな話はしていない。
アホなの?

66 :デフォルトの名無しさん:2022/01/09(日) 20:58:02.56 ID:j/1ajBbY.net
運用でカバーできる…そんなふうに考えていた時期が俺にもありました

67 :デフォルトの名無しさん:2022/01/10(月) 00:32:28.18 ID:lVSGmVUf.net
おまいらの話がさっぱりわからん

もしかしておまいらの画面にはレス中の \ が \ と表示されてるのか?

68 :デフォルトの名無しさん:2022/01/10(月) 00:32:56.45 ID:lVSGmVUf.net
あーやっぱりそうかww

69 :デフォルトの名無しさん:2022/01/10(月) 00:57:25.51 ID:av6tewvz.net
U+005C なのか U+00A5 なのかという問題

70 :デフォルトの名無しさん:2022/01/10(月) 01:03:42.10 ID:av6tewvz.net
以前 Linux の端末で Perl のプログラムで改行として ¥n を入れたらそのまま画面に ¥n が出て来て驚いたことがあったが、
その時はキーボードの「¥」を押すと U+00A5 が入力されており「\」を押すと U+005C が入力されている状態だった。
もちろんキーボードの通りに端末画面に出る。

ま、しかし、これが本来あるべき姿だよな。

71 :デフォルトの名無しさん:2022/01/10(月) 01:06:59.43 ID:9yjjKzLZ.net
お前ら安心しろ、PowerShellのエスケープ文字はバッククォート「`」だ

72 :デフォルトの名無しさん:2022/01/10(月) 18:57:32.72 ID:iL7OUFIC.net
evalは使わない方がいいって聞いたけど
例外処理でeval使わない方がいいんですか?
それなら例外処理はどうすればいいんですか?

73 :デフォルトの名無しさん:2022/01/10(月) 19:47:01.57 ID:VCZFr+j9.net
>>72
文字列のevalは使うなという話やろ?
でなければ、そう言ったヤツに聞かんと。

74 :デフォルトの名無しさん:2022/01/10(月) 19:53:08.99 ID:av6tewvz.net
セキュリティホールを作ってしまうかも知れないから使うなら気をつけて使えってことだろう。
特に外部から入力した文字列を元にしてevalに渡す文字列を作る場合な。

75 :デフォルトの名無しさん:2022/01/12(水) 14:32:06.61 ID:qWEJmmBb.net
>>70
Windowsだけが異常なだけなんでは?
俺は本来しか知らないよ

76 :デフォルトの名無しさん:2022/01/12(水) 17:06:22.24 ID:MDxnZ/Jq.net
>>75
そうなんだろうな。問題は、そこらじゅうにWindowsマシンがあるといこと。
サーバは Linux でも端末が Windows だとおかしい状態で表示されたりする。
(端末用のソフトやその設定次第ではあるが)

77 :デフォルトの名無しさん:2022/01/12(水) 18:28:08.05 ID:7zxmPeKt.net
>>75
遭遇頻度で言えば、Windows以外のほうがレアだけどな!

78 :デフォルトの名無しさん:2022/01/26(水) 18:09:06.30 ID:m/HfztEH.net
子飼弾がyoutubeやってるって聞いたんで見てみた
老害オヤジみたいになっててなんだかなあ

79 :デフォルトの名無しさん:2022/02/16(水) 15:00:10.27 ID:kgKTrVeV.net
2020年にPerl5.32あたりと同じ内容で2021までにはPerl7がリリース予定
目立った機能追加もないからさすがにリリース余裕だろうと思っとんだがあの話しどうなったの?
Perlコミュニティ機能してなくてそれすらなくなったとか?

80 :デフォルトの名無しさん:2022/03/29(火) 03:26:40.85 ID:d1B39DZ4.net
未だにperlでwebサイト作ってるとこあんの?
2chはperlらしいが

81 :デフォルトの名無しさん:2022/03/30(水) 15:15:52.21 ID:eA8ci9y2.net
2chはC言語では?
違ったっけ?

82 :デフォルトの名無しさん:2022/04/23(土) 16:12:18.71 ID:07cLvGHn.net
ここにperl関係者いるかな? 連絡用のアカウント作るの面倒なんでここで報告。

perl5 で (?<name>\d{1}){0} がおかしい件
https://github.com/tonco-miyazawa/regex_etc/blob/master/MEMO_perl5/define_0times.txt

perlrecharclass.pod の誤植 - perldoc.jp
https://github.com/tonco-miyazawa/regex_etc/blob/master/MEMO_perl5/memo.txt

83 :デフォルトの名無しさん:2022/04/24(日) 18:45:33.05 ID:5imQEA1W.net
>>79
亀だが外から見えるまとまった発表はないな。Steering Council もそれに気付いたから近々ブログ記事も出すと言ってる
https://markmail.org/message/tqi446jfy42elhz5

まあ Perl 7 の変更点だった strict / warnings / feature 'signatures' のデフォルト有効化と
feature qw/indirect multidimentional bareword_filehandles/ のデフォルト無効化は use feature ':5.36' に全部入ったから use v5.36 すれば実質 Perl 7 だ

84 :デフォルトの名無しさん:2022/08/11(木) 23:25:10.27 ID:LJKUJJ+3.net
perlファイルに書かれている1行目の記述(#!/usr/local/bin/perl等)を変更せずに、
apacheでperlの参照先を変えたい(出来ればvirtualhost毎)のですが、やり方分かる方ませんか?

85 :デフォルトの名無しさん:2022/08/11(木) 23:37:59.40 ID:/k5aJ7yS.net
それOSの力を借りないと無理なのでは?ApacheやPerlの問題ではないと思うが。

自分で /usr/local/bin/perl というスクリプトを作ってしまってそこで切り替えるみたいな誤魔化しで良いなら楽だと思うが。

86 :デフォルトの名無しさん:[ここ壊れてます] .net
>>85
OSはUbuntu 20.04.4 LTS を使っています。
何か方法はないでしょうか?

87 :デフォルトの名無しさん:[ここ壊れてます] .net
shebangを無視してファイルを実行するようなApacheモジュールを組み込んだらできるかも?
そんなモジュールはきっと存在しないので、自作が前提だけど。w

88 :デフォルトの名無しさん:2022/08/20(土) 02:15:42.15 ID:GHxw2S4o.net
>>87
shebangを使って出来るか試して見ますね

89 :デフォルトの名無しさん:2022/08/23(火) 18:46:04.59 ID:gaXbg1Nc.net
Perlに限った話じゃないんだが、WSL1でubuntu 22.04を使うとWSL1上でgzipバイナリが動かないせいで、tar.gz関連処理が軒並みエラーになってしまう
cpanでモジュールをダウンロードするとtar.gzの展開に失敗するのでなにもインストールできない
解決するには、gzipのソースをgnu公式からダウンロードしてビルド&インストールしてWSL1で動くgzipにパスが通るようにする必要がある

90 :デフォルトの名無しさん:2022/08/24(水) 00:32:00.18 ID:Ww6nM5wc.net
>>84
試してないが mod_actions 噛ませば良いんでない?

AddHandler my-perl-script .pl
AddHandler cgi-script .cgi
Action my-perl-script /cgi-bin/run-my-perl.cgi

とかやって run-my-perl.cgi は

#!/bin/sh
/path/to/your/perl $PATH_TRANSLATED

みたいな

91 :デフォルトの名無しさん:2022/08/25(木) 15:27:50.26 ID:bJn+zm7R.net
宇宙刑事 shebang

92 :デフォルトの名無しさん:2022/08/26(金) 18:50:05.53 ID:NQ4mbOjq.net
>>84
Would you like

#!/usr/bin/env perl
or
/your_favorite_perl_path perl_script

93 :デフォルトの名無しさん:2022/08/26(金) 20:12:41.13 ID:fCaJRqVr.net
きまぐれでどれが呼ばれるか判らんものをよく使おうと思えるな

94 :デフォルトの名無しさん:2022/08/26(金) 20:37:01.58 ID:KXcMIUBJ.net
gzはwin同梱のtarには付いて無いんか?

95 :デフォルトの名無しさん:2022/08/28(日) 05:40:04.80 ID:vrDCS1ZD.net
>>94
PATH の通ったディレクトリに Windows 用の xz.exe を置いておくと tar の J オプションで展開してくれるようだが圧縮は対応していない模様。
圧縮は自分でパイプ通してやらないとできないみたい。何故そうなっているかは不明。

96 :デフォルトの名無しさん:2022/08/28(日) 05:40:40.65 ID:vrDCS1ZD.net
あ、gz か。ごめん。xz と間違えた。

97 :デフォルトの名無しさん:2022/08/28(日) 05:42:29.29 ID:vrDCS1ZD.net
あれ?でも gz (gzip) 圧縮なら tar cvfz でできたな。

98 :デフォルトの名無しさん:2022/12/23(金) 15:18:23.84 ID:yhR2datD.net
perlに付属されているh2xsというツールを使ってモジュールを作成したいんですが、ディレクトリに移動に移動してコードを書く方法が分かりませんアドバイスお願いします。

※Perl
https://linuxcommand.net/perl-mod/#i-3

99 :デフォルトの名無しさん:2023/06/07(水) 16:24:29.96 ID:ywJ2sk66.net
Perlのpackage内my変数についてちょっと疑問。
myはレキシカルな局所変数なので、他package内のmy変数は他のpackageからは参照できず、参照したければmy出なくourにすると解釈していたが。
packageが別々のソースファイルだった場合はその通りですっきりしたスコープ仕様だと思っていたが…
ところが二つのpackageが同じソースファイル内にあり、他のpackageのmy変数を参照すると変な感じ:


use strict;
use warnings;

package P1;
our $aa = __PACKAGE__.'aa';
my $bb = __PACKAGE__.'bb';

package P2;
print __PACKAGE__ . "(1)$P1::aa\n";
print __PACKAGE__ . "(2)$aa\n";
print __PACKAGE__ . "(3)$P1::bb\n";
print __PACKAGE__ . "(4)$bb\n";

実行結果
$ perl package_a_b.pl
Name "P1::bb" used only once: possible typo at package_a_b.pl line 14.
P2(1)P1aa
P2(2)P1aa
Use of uninitialized value $P1::bb in concatenation (.) or string at package_a_b.pl line 14.
P2(3)
P2(4)P1bb

P2からはP1のmy $bbが$bbで参照できて、$P1::bb だとエラー、なんだこりゃ…???
ちな 5.36.0 と 530.0 で確認した。

100 :デフォルトの名無しさん:2023/06/07(水) 21:31:39.79 ID:w5fTdC21.net
myはpackageとは何の関係もない
packageにmyのシンボルテーブルはない
だから(3)ではuninitialized value $P1::bbになる
(4)は単なる文字列
正常な振る舞いだよ

101 :デフォルトの名無しさん:2023/06/07(水) 23:23:43.75 ID:ywJ2sk66.net
>>100
回答ありがとう、myがそういうものだと今日まで知らずにいた…おrz

102 :デフォルトの名無しさん:2023/06/08(木) 00:48:41.98 ID:ZzDLFGD7.net
myのスコープはブロック、ファイル、evalの3つ
パッケージとは無関係だから>>99ではファイルスコープになるね
package P2でもう一度my $bb宣言したらエラーになることからも分かる

103 :デフォルトの名無しさん:2023/08/31(木) 14:27:49.36 ID:MOdj+pbjZ
岸田異次元増税憲法ガン無視地球破壊軍國主義文雄のテ゛タラメっぷりが炸裂してるな、子ども真ん中社會が嘘八百なんて子どもでも分かるわな
力による一方的な現状変更によって都心まで数珠つなぎで鉄道の30倍以上もの莫大な温室効果ガスまき散らすクソ航空機倍増させて、騒音で
勉強妨害して気侯変動させて地球破壊して子どもの未来を暗黒の世界にして熱中症で殺害、世界最悪の脱炭素拒否テロ国家に送られる化石賞を
連続受賞していながら、私利私欲のために莫大な税金泥棒して、莫大な温室効果ガスまき散らしてクソ航空機を乗り倒して世界中に脱炭素ガー
た゛の嘘八百ほさ゛いてハ゛カ晒して.白々しくマッチポンプ丸出しで災害対策だのとバカの壁やら曰本中コンクリートまみれにして子と゛もの遊び場
破壊して溺死連発.利権倍増に増税、氣候変動であらゆるウイルス蔓延させて人殺して鶏卵価格やら物価暴騰、莫大な石油無駄に燃やす航空機
全廃すれは゛余裕で原發全廃できるものを原發稼働して全国放射能まみれを目指し、隣国挑発、軍事利権倍増、航空騒音で知的産業壊滅してる中
アプリのひとつも作れない分際でマイナンバカード推し進めて個人情報漏洩しまくり、漏洩した個人情報に一生害を受け続けるのが今の子と゛も
(羽田)ttps://www.call4.jp/info.php?typе=items&id=I0000062 , Τtps://haneda-project.jimdofree.com/
(成田)ttPs://n-souonhigaisosуoudan.amеbaownd.com/
(テロ組織)ttps://i.imgur.com/hnli1ga.jpeg

104 :デフォルトの名無しさん:2024/02/23(金) 07:50:24.93 ID:3WpPBYhb.net
あげ

105 :デフォルトの名無しさん:2024/04/14(日) 21:35:03.76 ID:byNUCOGR.net
ローカルサーバーでsrandとrandで生成した乱数の値と
レンタルサーバーでsrandとrandで生成した乱数の値が違うのは何で?
どちらもsrandの値は同じとする。

106 :デフォルトの名無しさん:2024/04/15(月) 00:21:17.88 ID:9X9lvy+w.net
このへんから探ってみては
https://github.com/search?q=repo%3APerl%2Fperl5+rand&type=code

煽りじゃないよ しんどいので俺はここまで

107 :デフォルトの名無しさん:2024/04/15(月) 12:41:15.37 ID:cLz3iDP/.net
プラットフォームのifdefで切り分けてそうだからそれっぽいマクロ定数でも探すといいかも

108 :デフォルトの名無しさん:2024/04/15(月) 17:29:37.18 ID:UgC/I+2W.net
ビルドされた環境のCライブラリ依存じゃない?
同じにしたいならMath::Random::MTとか使えばいいんでね

109 :デフォルトの名無しさん:2024/04/16(火) 09:32:57.50 ID:Fr3sHPgG.net
>>105
一般論としてPerlの内部実装は無保証でコロッコロ変わるので、疑似乱数の再現性を担保したいならコードを同梱してしまうのが最も確実

cでたったこれだけ、Perlで詰めれば20行も要らんだろう、局所使用ならファイル内subでいいレベル
github.com/bmurray7/mersenne-twister-examples/blob/master/c-mersenne-twister.c

同階層にpl版もある
丁寧にコードされパッケ化で無意味に冗長なので参考ならこっち
アルゴリズム特許あるか知らんし、ライセンスを許容するなら同梱

110 :デフォルトの名無しさん:2024/04/16(火) 14:14:10.10 ID:ipSHedtl.net
print"A\n",print"B\n";

これの動き教えてくれよ
出来ればサンプルソースも

111 :デフォルトの名無しさん:2024/04/16(火) 15:16:06.51 ID:UEoqQOMp.net
print "A\n", print "B\n";
print("A\n", print("B\n"));
まず最初のprintの引数中のprint("B\n")が評価され"B\n"が出力される
print("B\n")が成功したので真の値1を帰す
print("A\n", 1)となる

B
A
1と表示される

print "X\n", 3 > 0;
print "X\n", 3 < 0;
print "X\n", open(my $fh, "no_such_file.txt");

112 :デフォルトの名無しさん:2024/04/16(火) 15:37:42.78 ID:E/T1RXIg.net
成る程、() 使わない副作用意識しないとダメですね
ありがとうございます

30 KB
新着レスの表示

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

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