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

■ このスレッドは過去ログ倉庫に格納されています
2019/02/01(金) 09:44:37.18ID:1/Kr4Qjk
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.28.1)

▼前スレ
Perlについての質問箱 61箱目
http://toro.5ch.net/test/read.cgi/tech/1381561905/
Perlについての質問箱 62箱目
http://toro.5ch.net/test/read.cgi/tech/1385039352/
Perlについての質問箱 63箱目
https://mevius.5ch.net/test/read.cgi/tech/1392820583/
584デフォルトの名無しさん
垢版 |
2020/07/28(火) 21:42:15.96ID:7IzxJUwl
>>583
ネットでの暴言はインキャがすること。
てめぇはこうなれ!!!
http://re-file.com/18k/1669/ (結構グロ)
2020/07/28(火) 21:51:29.80ID:rf/YfV6w
殺したいほど嫌悪するような事か?
おそらく心の病気だから早く病院行った方がいい
586デフォルトの名無しさん
垢版 |
2020/07/28(火) 22:01:24.31ID:7IzxJUwl
>>585
あの〜傍観者なのですが、これって584と583
どっちに言ってるんですか??
2020/07/28(火) 22:22:07.89ID:Jbl72Gtp
もっと争え
588デフォルトの名無しさん
垢版 |
2020/07/28(火) 22:27:18.25ID:7IzxJUwl
ネットはこうでなくちゃ!明日の学校めんどいけど、この争いみたら
楽になれる!
2020/07/28(火) 23:07:09.57ID:rf/YfV6w
なぁお前らってホントにコード書けるの?
何でここにいるの?
2020/07/28(火) 23:26:37.15ID:rf/YfV6w
明日の学校とか五十過ぎのオッサンが恥ずかしくないのか?
591デフォルトの名無しさん
垢版 |
2020/07/28(火) 23:54:00.05ID:7IzxJUwl
>>590
福岡県福岡市東区在住
西南学院中学二年〇組テニス部
学力推移調査:225/223位
全教研赤坂本校筑女,西南合同vクラス
明日の時間割英会話.社会.聖書.体育
(保護者面談なので4限授業)
頭は悪いがプログラムができるのでマークザッカーバーグ
のように校内snsをつくって流行らせようとしてます笑笑。
昨日、無断で水曜日に部活休んだのでめちゃくちゃ怒鳴られました。
明日の聖書は、「手紙」というくだらない日本映画を見ます。
今日は一時から「爆笑問題カウボーイ」というラジオがあるので、
monsterのんでずっと起きてます。2年になって運が悪いことに親しかった
友達は2組と五組に分かれてしまい、僕だけ〇組という
辺境の地に飛ばされました笑笑。好きなアーティストは「ずっと真夜中でいいのに」
という顔出ししていないバンドです。さっき5chのずとまよ専用スレで顔写真をみて、
とても美人だったので今すごくうれしいです。好きなサイトは、「リファイル」というグロサイトです。
「西南学院中学2年という名前でコメント投稿してるので、グッドボタン押して下さい。
592デフォルトの名無しさん
垢版 |
2020/07/28(火) 23:55:04.17ID:V3SVLGoH
>>590
学校の先生かも知れんよ
593デフォルトの名無しさん
垢版 |
2020/07/28(火) 23:59:10.33ID:7IzxJUwl
ほんとに信じてくれ!
594デフォルトの名無しさん
垢版 |
2020/07/29(水) 00:00:07.74ID:hFsck1GX
>>592
全然信じてくれんやん笑笑
595デフォルトの名無しさん
垢版 |
2020/07/29(水) 00:01:21.85ID:hFsck1GX
>>591
というか、こんなにネットにさらすのはやばかったかな?
596デフォルトの名無しさん
垢版 |
2020/07/29(水) 00:05:34.09ID:hFsck1GX
>>590
逆に聞きますが、あなた五十過ぎのオッサン
何ですか?( ´∀` )
2020/07/29(水) 00:11:56.16ID:g1h81RwA
>>593
リアル厨房なら、perlなんかやめたほうがいいね。
python のほうがずっと言語仕様が綺麗で、複雑な処理も簡単にこなせる。
今、perlを使っているのはな、20年前からperlを使ってて、
他の言語に乗り換える気力も失ったオッサンばっかりだよ。
598デフォルトの名無しさん
垢版 |
2020/07/29(水) 00:13:37.08ID:CwVjY0Ri
蛇より真珠のがキレイだ
599532
垢版 |
2020/07/29(水) 00:13:51.84ID:gNILtmsT
python, goなど他の言語もやってますが
600デフォルトの名無しさん
垢版 |
2020/07/29(水) 00:19:14.22ID:hFsck1GX
>>597
最近はperlよりphpに力を入れてます
2020/07/29(水) 02:50:53.58ID:ZD2Ud5DP
>>597
互換性重視ならPerlしか。
Rubyはとんでもないし、Pythonもあやしい。
602デフォルトの名無しさん
垢版 |
2020/07/29(水) 02:59:07.17ID:TsNd4noZ
Kotlinもよろしく
2020/07/29(水) 07:08:18.48ID:q44g7qzE
問題
----
$flags に格納されているフラグ 0x40 をリセットして 0x00 にする
次の3通りの処理から採用する方法を理由を添えて答えなさい

   a. $flags = 0x00
   b. $flags = 0x00 if $flags == 0x40
   c. $flags &= ~0x40
2020/07/29(水) 08:33:33.53ID:W2ZwK0DF
でも、そこだけ書き換えて、ちゃんと動いたの?

もし、チェックサムがあれば、エラーになるはずだけど
2020/07/29(水) 15:15:31.23ID:opF1rrDZ
>>597
個人的にはサーバプログラムはgo
時点でpythonかな
perlはlinuxなら環境を選ばないという点で、シェルスクリプトはperl一択
それぞれに良さがある
606デフォルトの名無しさん
垢版 |
2020/07/31(金) 06:23:48.86ID:uvjudIRN
>>603
a, b は他のビットが0になっても良い場合、及びbは他のビットが0の場合に動く。
cは
あ、ちょっと今書いてる時間ない。誰か他の人よろしく。
607デフォルトの名無しさん
垢版 |
2020/08/02(日) 05:05:52.61ID:IlYSPDQE
Cは他のビットを崩さずに 0x40 の所のビット(2進だと01000000)だけ0にする。
2020/08/02(日) 07:04:07.45ID:MjfLntA9
何を 0x00 にするのか不明確な時点で出題者の頭が悪い。
a を意図しているなら 0x40 は関係ないし
b を意図しているなら「0x40 をリセットして」ではなく「0x40 がセットされていれば」と
書かれていなければならない。
ひょっとして、元の値が 0 だったらリセットしたことにはならないということか?
c を意図しているなら他のビットが全部 0 の場合に限り「$flags の値を 0x00 にする」
ことになるだろうが、そのようには書かれていない。
$flags & 0x40 を 0 にするということなら、 0x00 と表記するのは
値としては同じでも適切な表記なのか疑問が残る。
しかしこれが最も無理のない解釈だろう。
こんなに忖度させるようでは出題者は落第だ。
2020/08/02(日) 07:43:03.21ID:muADJDro
うわあ恥ずかしいやつが来ちゃった
>>603>>505 からの流れがあって出された問なのに・・・
2020/08/02(日) 09:49:24.57ID:LgIKwsTf
pythonいいけどちゃんと書かないとすぐバグるから気をつけてな
2020/08/02(日) 10:05:23.75ID:Vanmrtqf
perlもちゃんと書かないとバグるぞ
2020/08/02(日) 12:33:21.72ID:uvJ0AhRU
ちゃんと書かないで
バグらない言語ってあるのか?
2020/08/02(日) 12:40:43.04ID:L8TYFRoG
水掛け論でしょ 言語仕様を理解しないで適当に書いてちゃんと動くかどうかの話
2020/08/02(日) 12:45:33.70ID:Vanmrtqf
仕様からコードを自動生成すればバグらない
仕様はちゃんとしか書けないものとする
2020/08/02(日) 15:01:47.55ID:4gDW5awL
>>608
>>505をよろしくお願いします
美しいスクリプトを期待
616デフォルトの名無しさん
垢版 |
2020/08/02(日) 16:23:15.21ID:qo03Ruan
また釣りのクズか
2020/08/02(日) 17:01:54.34ID:4gDW5awL
病気の人か
5ちゃんねるで悪態つくだけの惨めでみっともない人生
2020/08/02(日) 17:05:00.79ID:4gDW5awL
>>616
>>505をよろしくお願いします
期待していい?
619デフォルトの名無しさん
垢版 |
2020/08/02(日) 18:07:45.30ID:JnzrulEq
>>617
死ね
2020/08/02(日) 18:54:17.87ID:4gDW5awL
効いたな
2020/08/02(日) 19:26:37.18ID:TAOBMMvc
>>614
数万人の天才が挑戦しているがいまだに達成していない
2020/08/02(日) 19:41:56.53ID:hIQzyyzC
>>621
むしろ天才よりも秀才のほうやろ。
本当の天才はそういうことに関わらん気がする。
直感的に不可能か、現実的に意味がないかを悟っていそうというか。
2020/08/02(日) 20:29:18.39ID:Vanmrtqf
バグの無いことの証明が不可能なのは、
ゲーデルの不完全性定理とかあのへんまで突っ込んでいくからであって、
99.9%okなら良しとする現実世界なら普通に可能
2020/08/03(月) 23:11:06.80ID:/fZxIKnK
>>623
そしてその0.1%が理由になって戦争になるわけですね
2020/08/09(日) 01:00:36.25ID:JDEJdFnx
過疎ってると落ち着く
2020/08/13(木) 15:32:24.87ID:g8OxF1lY
UTF8からShift-JISに変換し、その中で変換できなかった文字列はhtml数値文字参照に変換したいです

(UTF8)楽しいね🙂→(Shift-JIS)楽しいね🙂 ;
このような風にです

こちらのサイトを参考にして↓のように書いてみたのですが
https://blog.netandfield.com/shar/i/details/004482.html#home


use Encode;
my $word = "楽しいね🙂";
Encode::from_to( $word, "UTF8", "Shift_JIS", Encode::FB_HTMLCREF);
print "$word";

(結果)
?y??????🙂 ;

と、元の日本語が文字化けしてしまいます
どこを直せばいいでしょうか?

Perlのバージョンは5.18.2
Encodeモジュールのバージョンは2.49です
2020/08/13(木) 16:19:08.99ID:HLH3bdVq
その出力先(ターミナル?コンソール?)は、そもそもシフトJISテキストを表示できるのか?
できない場合は、プログラムは関係なく、ターミナルが文字化けする。

ためしにtext.htmlのようなファイルに出力してから、その内容を確認したら?
2020/08/13(木) 16:44:17.95ID:DQVPr3Tq
前にやろうとして諦めた
pythonだと簡単

try:
  str_sjis = str.encode("CP932")
except UnicodeEncodeError:
  print str.encode("utf-8")
2020/08/13(木) 16:48:34.24ID:/BJ4BGZD
>>628
そのレベルならPerlでも簡単
絵文字だけ抜き出してHTML特殊文字化 でしょ
2020/08/13(木) 17:00:11.25ID:g8OxF1lY
>>627
ターミナルです
ファイルに出力してそれをShift-JISとして開いたら文字化けもなく見ることができました
内部的には問題なかったのですね
ありがとうございました
2020/08/13(木) 22:25:11.59ID:L5UfXSE8
>>628
笑わすんじゃねーw
2020/08/15(土) 08:35:13.06ID:ACgG3ouC
プロトタイプ属性の指定がどうやってもできん

use feature 'signatures';
sub foo :prototype($$) ($left, $right) {
return $left + $right;
}

これで構文エラーになる理由が全く分からん
2020/08/15(土) 10:52:43.99ID:N6F3nDZU
釣れますか?
2020/08/15(土) 12:09:58.58ID:ybTBju6n
同時には使えんやろ
2020/08/15(土) 14:02:00.78ID:ACgG3ouC
え????

use feature 'signatures';
sub NAME(SIG) BLOCK # with signature
sub NAME :ATTRS (SIG) BLOCK # with signature, attributes
sub NAME :prototype(PROTO) (SIG) BLOCK # with signature, prototype

構文こうなってるけど?
636デフォルトの名無しさん
垢版 |
2020/08/15(土) 15:48:07.40ID:k2IZqmRY
以下のようなhtmlがあるとします
<div>
<p>AAA</p><p>BBB</p><p>CCC</p><p>DDD</p>
</div>
<p></p>の構文が4個の場合は、構文を文字列として2個ずつ別の変数に分けたいです。
($str1 に"<p>AAA</p><p>BBB</p>" 、 $str2に"<p>CCC</p><p>DDD</p>"
<p></p>の構文が6個の場合は3個ずつ、8個の場合は4個ずつ・・・と前半と後半で分けて
2つの変数に代入したいのですが、方法はあるでしょうか?
2020/08/15(土) 16:19:42.08ID:V1MJgzDn
そら一発では無理だろう
一旦配列に入れてから真ん中で分ける
638デフォルトの名無しさん
垢版 |
2020/08/15(土) 16:34:06.12ID:o+i8zw5r
釣りに引っ掛かるな
639デフォルトの名無しさん
垢版 |
2020/08/15(土) 17:04:09.01ID:gFfdk9Ij
>>636
はい。あります。
2020/08/15(土) 19:50:33.78ID:dQrORRCv
ちょろい問題。単なる初心者で釣りなんかじゃないでしょう。

@foo = (); @bar = ();
while ($str =~ s{^[\s\S]*?<p>(.+?)</p>(.*)<p>(.+?)</p>[\s\S]*$}{$2}){
push @foo, $1;
unshift @bar, $3;
}
2020/08/15(土) 19:55:02.56ID:dQrORRCv
2行目間違えてた。
while ($str =~ s{^[\s\S]*?<p>(.+?)</p>(.*)<p>(.+?)</p>[\s\S]*?$}{$2}){
2020/08/15(土) 20:01:49.33ID:UM/CpThf
# 元ネタ
my $html = '<html><p>hoge1</p><p>hoge2</p><p>hoge3</p><p>hoge4</p><p>hoge5</p><p>hoge6</p><p>hoge7</p><p>hoge8</p><p>hoge9</p><p>hoge10</p></html>';

# 全部のpタグの中身を引っ掛ける

my @p_list = $html =~ /<p>(.+?)<\/p?/g;

# 引っかかった数取得

my $size = int(@p_list);

# 前半と後半に分けて突っ込む

my @mae = @p_list[0..int($size/2)-1];

my @ato = @p_list[int($size/2)..$size-1];

# 結果表示テスト


print Dumper([\@mae, \@ato]);
2020/08/15(土) 20:03:08.33ID:UM/CpThf
なんだこの糞改行(´・ω・`)


# 全部のpタグの中身を引っ掛ける
my @p_list = $html =~ /<p>(.+?)<\/p>/g;

# 引っかかった数取得
my $size = int(@p_list);

# 前半と後半に分けて突っ込む
my @mae = @p_list[0..int($size/2)-1];
my @ato = @p_list[int($size/2)..$size-1];

# 結果表示テスト
print Dumper([\@mae, \@ato]);
2020/08/15(土) 20:11:32.28ID:UM/CpThf
俺のは巨大なHTMLだとメモリが死ぬ
安全策なら>>640
2020/08/15(土) 20:49:31.50ID:ODJGcA2C
>>644
まあ、そんなに巨大だったら、どっちにしろ死ぬやろけどな。w
本気で心配するならチビチビつままないと。
2020/08/16(日) 03:38:06.22ID:Degs0Zl8
Ruby の、Nokogiri で、スクレイピングしてみた

require 'nokogiri'

doc = Nokogiri::HTML(<<EOT)
<div>
<p>AAA</p><p>BBB</p><p>CCC</p><p>DDD</p>
</div>
EOT

p_tags = doc.css( "div > p" ) # div の直下のp
half_cnt = p_tags.length / 2

def make_p_str( ary ) # 要素の配列から、文字列を作る
str = ""
ary.each do |elem|
tmp = elem.to_html # 要素
tmp.chomp! # 末尾の改行を削除する
str += tmp # 連結
end
str
end

p str_before = make_p_str( p_tags[ 0...half_cnt ] ) # 前半
p str_after = make_p_str( p_tags[ half_cnt..-1 ] ) # 後半

出力
"<p>AAA</p><p>BBB</p>"
"<p>CCC</p><p>DDD</p>"
2020/08/16(日) 06:28:33.83ID:Rc5RuLFB
Mechanizeでやれる?
648646
垢版 |
2020/08/16(日) 07:20:54.63ID:Degs0Zl8
Mechanize とか、curl + Nokogiri でも、静的なページなら、DOM を取得できるけど、

Ajax など、JavaScript で、動的にDOMを組み立てている場合は、
sleep するとか、Selenium WebDriver などを使わないと、DOMを取得できない

5ch などは、空のHTMLを送ってきてから、
Ajax で、ページの内容を取得しているから、
HTMLをスクレイピングするだけでは、タイミングによっては内容が存在しない
649646
垢版 |
2020/08/16(日) 07:27:51.64ID:Degs0Zl8
Ruby で、curl, Nokogiri の例

require 'nokogiri'

html = `curl http://www.example.com/`
doc = Nokogiri::HTML( html )

elements = doc.css( "h1" )
puts elements.first.content #=> Example Domain

open-uri の例

require 'open-uri'
require 'nokogiri'

url = 'http://www.example.com/'
doc = Nokogiri::HTML(open(url))
2020/08/16(日) 07:29:48.83ID:Rc5RuLFB
プロテクトのつもりは無いんだろうけど、機械にやさしくない
最近だとメルカリのページ取得して、なんで空? と思った
651646
垢版 |
2020/08/16(日) 09:02:04.52ID:Degs0Zl8
Selenium WebDriver なら、指定した要素が出現するまで、指定した時間だけ待ってくれる

漏れは、10〜20秒ぐらいを指定してる
2020/08/16(日) 09:19:07.80ID:Rc5RuLFB
webであれこれしたいなら、javaが近道なのは自明だな
2020/08/16(日) 13:18:51.97ID:YKxJCnVG
Javaは、なにをするにしても遠回りやろ。w
2020/08/16(日) 14:20:54.02ID:bYLilpPQ
逆にPerlできないことってなんだ?
ライブラリは揃ってるものとして
2020/08/16(日) 15:22:58.74ID:9u3LM4y1
あんまりない
弱いのはライブラリ面なので言語的に不足してる機能はそれほどない
2020/08/16(日) 16:02:30.33ID:0524gJdA
CPANを探してなかったという経験がないしな
2020/08/16(日) 18:58:24.31ID:5UHvUqAR
なら、C++があれば他の言語は要らなくなる。
さらに極言すれば、アセンブラがあれば他の言語は要らなくなる。
2020/08/16(日) 19:02:50.27ID:YKxJCnVG
GUIは弱い。
まあ強いと言っていいのはC#くらいだから、しゃあない?
659636
垢版 |
2020/08/16(日) 20:53:31.17ID:we+09hKc
返信が遅くなってすいません
>>640,643,646
勉強になりました
ありがとうございました
2020/08/17(月) 01:24:18.13ID:U9ZmQUIp
GUI必要なツールはC#使うけど、CUIだけとか引数もなくて単に実行するだけとかそういうのだいたい全部Perlで書いてる
2020/08/17(月) 07:07:29.41ID:lN4Qioc8
GUIって結局、裾野の方々でも使えるようにする工夫であって、
テキストエディタで条件設定した方がよっぽど効率いい場合が殆どなのでは

自分専用ツールでGUIで作った記憶がない
662デフォルトの名無しさん
垢版 |
2020/08/17(月) 07:25:27.72ID:KZ//oCQL
>>661
スマホのアプリはテキストエディタを使うのが主流か?
2020/08/17(月) 07:41:47.99ID:lN4Qioc8
スマホのは作ったことすらないけど、
CUIなんて選択肢がそもそもあるのか?
2020/08/17(月) 10:16:26.85ID:MSHB+00t
>>661
だからなに?
ああそう、とかいってほしいの?
2020/08/17(月) 11:54:02.58ID:p+skW/fD
PerlでスマホのGUI作れるんですか?
2020/08/17(月) 12:04:54.68ID:OdJd9Pxh
GUIが必要ないものはPerlでって話でしょ
これに噛み付いた>>661が意味不明
2020/08/17(月) 12:18:14.46ID:lN4Qioc8
噛みつかれた、と思っちゃうのが糖質なんだよな
書き込みがみんな攻撃に見えるっていう
2020/08/17(月) 12:19:54.46ID:p+skW/fD
>>653
だってJavaとPerlでスマホのGUIを比べるのがどうかしてる
2020/08/17(月) 14:26:41.31ID:MSHB+00t
>>667
わけがわからなすぎるからな。
攻撃に見えてもしゃあない。

オレには隙自語に見えた。

で、本人はどういうつもりなの?
2020/08/17(月) 15:10:53.35ID:Y3iw4HO/
http://hissi.org/read.php/tech/20200817/TVNIQiswMHQ.html

>>669は聞きたい事が多い
2020/08/17(月) 17:15:38.44ID:fOsr3uhu
そうだねでいいんでね おれもそう思う
GUIがあった方がいいなって時はつければいいし
672デフォルトの名無しさん
垢版 |
2020/08/17(月) 18:21:33.00ID:2KNIyB/f
あー。PerlでスマホのGUIか。書けたらいいな。
ていうか世界は広いからとっくの昔に誰かが作ってそう。
2020/08/17(月) 22:59:27.97ID:6nkEOrou
その昔はGUIといえばperlだったんだけどな
2020/08/18(火) 01:35:21.75ID:IZwRntbA
Perl(パール)[Pathological Eclectic Rubbish Lister]
Google翻訳[病理学的折衷的なゴミリスター]

どうしてこうなった?
675532
垢版 |
2020/08/18(火) 02:10:03.41ID:B3TNMnkL
perlのguiといえばTk, Tkx, wxWdget, Qt, GTK …色々あって
やろうと思えばやれると思うけど。

オレはPerlではTk, Tkxしかやったこと無いけどさ
2020/08/18(火) 02:46:33.41ID:TScP2Zja
GUI必要がなら普通にWebアプリでいいと思う
2020/08/18(火) 03:58:15.17ID:R/jmWoBG
>>674
ラクダ本にそう書いてなかったっけ?
2020/08/18(火) 04:26:54.25ID:G86KA+uV
>>677
「病理的に異常な妥協を寄せ集めたゴミくずリストを作るものです」と?
2020/08/18(火) 06:36:49.23ID:bsH9de+P
処理が終わったらwindowsにポップアップを出すくらいでいいわ
2020/08/18(火) 12:11:19.03ID:1vCwIsCs
>>676
同感
適材適所
Perlは高度なバッチ処理が適所だと思う
681デフォルトの名無しさん
垢版 |
2020/08/18(火) 22:52:59.68ID:MJ+frvDl
>>673
馬鹿?それとも釣り?
2020/08/18(火) 23:26:43.99ID:yJqh7w6C
>>681
perl/tk をご存じないのか?
2020/08/18(火) 23:33:31.65ID:bsH9de+P
やれるというのと、それを目標に人が集まってくるのは別

rubyのrailsとかpythonの機械学習とかみたいに、
GUIの為にperlを覚えたような奴を見たことない
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

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