X



Perlについての質問箱 63箱目
■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん
垢版 |
2014/02/19(水) 23:36:23.29
CGIについての質問は板違いです。WEBプログラミング板でどうぞ。
CGIとPerlの区別がつかない人もWEBプログラミング板に行ってください。
(WEBプログラミング板: http://kohada.2ch.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.18.2)

▼前スレ
Perlについての質問箱 61箱目
http://toro.2ch.net/test/read.cgi/tech/1381561905/
Perlについての質問箱 62箱目
http://toro.2ch.net/test/read.cgi/tech/1385039352/
0263259
垢版 |
2016/06/23(木) 10:28:45.02ID:mgh0+o+/
>>262 _(_^_)_ m(_ _)m
0264デフォルトの名無しさん
垢版 |
2016/06/23(木) 14:28:28.61ID:Fa0lhzij
>>243
もう見てないと思うけど、一応書いとくよ。君はまず、
Perl readdir Windows
でググってみるべきだった。
0265デフォルトの名無しさん
垢版 |
2016/06/28(火) 23:22:27.94ID:sQcX3Fgh
複数の文字列フィルタ (grep や s) を連続で通す書き方って、どうだったっけ?
ある文字列を
 ・grep でフィルタ → grep で再度フィルタ → s で置換 → split で分割 → 先頭要素だけスカラー変数に格納
これをスマートに(可能ならば1行で)やりたい。
0266デフォルトの名無しさん
垢版 |
2016/06/28(火) 23:31:42.78ID:IoEHfO5D
@result = map {(split //)[0]} map {s//;$_} grep {} grep {} @strings;
こんな雰囲気でええんでないかい?
0268デフォルトの名無しさん
垢版 |
2016/07/02(土) 14:22:47.36ID:UtcihNE2
基本的に日本語で書いたときの逆順に記述するだけなんだけどね
マニュアル読んで分からなければたぶん無理だろう
0270デフォルトの名無しさん
垢版 |
2016/07/04(月) 00:55:08.84ID:xC//1vCA
id="011"<width>1</width>

この文字列から011だけ正規表現で抜き出す方法教えてください
idの数値だけを抜き出したい
0272デフォルトの名無しさん
垢版 |
2016/07/04(月) 01:08:21.29ID:xC//1vCA
>>271
ありますが、かなり長いxmlなので必要だと思った部分だけ抜き出しました
もう少し抜き出してみるとこんな感じです

source="http://hogehoge.xml"; />
<name="foo" id="0110"

このような文字列が大量にあってそのなかからidの数値だけが欲しいです
0274デフォルトの名無しさん
垢版 |
2016/07/04(月) 22:53:37.85ID:0oVcG5wM
HTMLパーサーを使うのが一番簡単で正確
コメントの中にHTMLがあったらどうするんだ?

つーか正規表現を乱用するな。
0276デフォルトの名無しさん
垢版 |
2016/07/05(火) 17:36:47.05ID:QGn+r4HY
>>270 だとタグの外にあるように見えるのに >>272 ではタグの中になってる。
だから静観してたけど、結局どっちなの?
0277デフォルトの名無しさん
垢版 |
2016/07/05(火) 17:48:38.40ID:gL12vNid
なんか最初のだと後に<width>のある特定のidの値が欲しいのかな?って思ってたけど
そうでもなくて全部のidの値でいいんだってのが>>273でわかったんで拍子抜けしたところ
0279初心者です
垢版 |
2016/07/09(土) 07:48:40.33ID:g+Tip2fR
宜しくお願いします。

$ua->cookie_jar(HTTP::Cookies->new(file => "cookie.txt",autosave => 1));
でcookie.txtにクッキーを取得できるのは分かりますが
削除したい場合にはどのようなコードを書くんでしょうか?
0280デフォルトの名無しさん
垢版 |
2016/07/09(土) 16:55:14.14ID:ce8+Vk05
そういえばいつもお世話になってるのに知らないな……と思ってマニュアルを読んでみた。
どうやら clear を使うらしいな。まずは scan で中身を見てみるのが良さそうだ。
これ以上は説明のしようがない。自分で頑張ってほしい。
0281デフォルトの名無しさん
垢版 |
2016/07/09(土) 21:07:47.73ID:g+Tip2fR
ウィッス
0282デフォルトの名無しさん
垢版 |
2016/07/11(月) 17:00:44.97ID:ELH2iWp3
マルチプロセス処理の Parallel::Prefork は、
Windows の StrawberryPerl か ActivePerl に、インストール可能ですか?
http://pass.cpantesters.org/distro/P/Parallel-Prefork.html

Strawberry、Active、旧バージョン、32bit、64bitなど色々試したけど、
>Can't locate Parallel/Prefork.pm in @INC (you may need to install the Parallel::
>Prefork module) (@INC contains: C:/...
0284デフォルトの名無しさん
垢版 |
2016/07/14(木) 20:00:42.23ID:GgJblQeZ
突然文字が正しく表示できなくなるゴミPerl
人をイラつかせるために作られた言語だなこれ
存在価値がないどころか存在事態が害悪
早く消滅すればいいのに
0285デフォルトの名無しさん
垢版 |
2016/07/14(木) 20:06:36.90ID:GgJblQeZ
マジで使い物にならない
「ゴミPerlで文字がいきなり変になる対処」
「産廃Perlの文字取り扱いがおかしいのをなんとかする方法」
「糞Perlが文字をまともに扱えないことへの特効薬」
もう数時間検索してるが解決案が出てこない
こんなに酷い言語はPerlくらい
0286デフォルトの名無しさん
垢版 |
2016/07/14(木) 20:15:06.51ID:GgJblQeZ
Perlは本物のゴミ
文字すらまともに表示できないとか利用価値なし
0287デフォルトの名無しさん
垢版 |
2016/07/14(木) 20:25:10.95ID:GgJblQeZ
Perlのゴミなところ

文字「あ」すら表示すらできないためとてつもなくイライラする
0288デフォルトの名無しさん
垢版 |
2016/07/14(木) 20:28:38.21ID:GgJblQeZ
明日納品なのに解決する兆しなし
こういうときは一から書き直すことも多いが何千行もあるシステムを明日までに書き上げられるわけもない
本当にPerlはゴミすぎる
0289デフォルトの名無しさん
垢版 |
2016/07/14(木) 23:24:13.01ID:RqQ+21r9
だからバイナリで扱えと口が酸っぱくなるほど言ってきたわけで聞き入れないお前が悪い。
0291デフォルトの名無しさん
垢版 |
2016/07/15(金) 08:34:29.93ID:XWIPLqFW
テンプレの>>5 を誰かが勝手に変えたからだ。
元々はこうなっていた。
http://pc12.2ch.net/test/read.cgi/tech/1234181856/4
------------------------------------------------------------
# [Perl 日本語処理の基礎の基礎]
# このレスは、Windows の ActivePerl で日本語処理を行う場合のテンプレートです。
# このレスの内容をそのまま、UTF8 形式のソースファイルに保存して下さい。
# 入出力ともシフト JIS 形式のファイルまたは DOS 窓を想定しています。
# まず、以下の行を先頭に入れて下さい。
use utf8;
use open IO =>
0293デフォルトの名無しさん
垢版 |
2016/07/15(金) 09:08:17.43ID:ATzxunsm
とりあえず Data::Dumper と PerlIO::get_layers を使えば助けを求めるのに役立つと思うが
責任転嫁しかできないゴミに言ってもなぁ……
0294デフォルトの名無しさん
垢版 |
2016/07/15(金) 12:22:26.70ID:XWIPLqFW
>>285 それからな、
> ゴミPerl
> 産廃Perl
> 糞Perl
どれも、なかなかいいところを突いているが、ちょっと外れているな。
正解は「ガラクタ」だ。

Perl とは「pathologically eclectic rubbish lister」
(病的折衷主義のガラクタ出力装置)の 略なのだ。
0296デフォルトの名無しさん
垢版 |
2016/07/17(日) 01:45:28.71ID:T2eP0LKz
内部エンコードはperl独特だよね。
扱えれば入力と出力がどんなエンコードだろうが無双出来るけど
0297デフォルトの名無しさん
垢版 |
2016/07/17(日) 09:40:41.84ID:kAN9hSRv
>>294
「Perl を愛する人にとっては」と前置きするのを忘れてるぞ。
0298デフォルトの名無しさん
垢版 |
2016/07/17(日) 13:59:57.99ID:D/SlpqZf
まぁperlなんて使い物にならないでしょ

use utf8;付けたらそれまで文字化けしなかったUTF8の文字列が文字化けしたし
0300デフォルトの名無しさん
垢版 |
2016/07/17(日) 16:24:12.49ID:Cv1W2kE4
ではperlじゃないならなにがいいのかな。python?
rubyはパイプ記号が変なところで出てくるからちょっと違和感有り。
0302デフォルトの名無しさん
垢版 |
2016/07/17(日) 17:57:53.58ID:F+fhoGjl
賭けてもいいが、文字コードが分からないのをPerlのせいにしてるやつが、
自分で1からプログラミングしたら壊滅的な状況になると思う。
0304デフォルトの名無しさん
垢版 |
2016/07/18(月) 03:14:08.10ID:GZVIgCur
>賭けてもいいが、文字コードが分からないのをPerlのせいにしてるやつが、
>自分で1からプログラミングしたら壊滅的な状況になると思う。

意味不明な言動をする気違い。

「賭けてもいいが、腹が痛くなるのを残飯のせいにしてるやつが、
自分で1から料理したら壊滅的な状況になると思う。」

と言ってるのと同等で意味不明。
気違い。
0305デフォルトの名無しさん
垢版 |
2016/07/18(月) 07:46:08.11ID:C0GpTohk
自分で料理出来るのであれば、残飯なんて最初から食べないよ…
残飯を食べるという事は、食べざろうえない理由があっての事だろうに…
0307デフォルトの名無しさん
垢版 |
2016/07/18(月) 14:09:08.76ID:UhcVRSnP
高級料理も残せば残飯になるのさ。
最後の姿を見ただけで、本来の姿を判断するのは
無能というもの。
0308デフォルトの名無しさん
垢版 |
2016/07/19(火) 09:36:50.47ID:BbD/ZGSl
文字コードが分からないのをPerlのせいにしてるのは馬鹿の上限を突破してるが、
腹痛を残飯のせいにするのは間違ってないだろう。食ったと言う意味では馬鹿だが
0309デフォルトの名無しさん
垢版 |
2016/07/19(火) 14:33:33.84ID:kU2ISgr0
どんなに文字コードを理解している人間でも文字をまともに扱えないピログラム言語の前では無力
その程度のことも分からないのかはたまたPerlがまともな言語だと錯覚しているのか
もし錯覚しているならば自分の使っている言語についてほとんど何も知らないということになる
まずはその自覚をすべきである
0314デフォルトの名無しさん
垢版 |
2016/07/20(水) 20:04:27.70ID:y5BMpkOv
PHPってHTML言語じゃないの?比較の対象にもならないと思うんだが。
rubyに負けてるというならまだわかるけど。
0316デフォルトの名無しさん
垢版 |
2016/07/20(水) 23:37:17.38ID:E+SEwayU
>>314
HTML言語ってなんやw
HTMLに埋め込めるってだけでごく普通の
プログラム言語だぞ。

どれくらい普通かというと以下の機能が搭載されてる
・クラス
・インターフェース
・トレイト
・ラムダ
・クロージャー
・名前空間
・例外
・ジェネレーター
・ガベージコレクション

あと言語機能じゃないが、CLIプログラムの作成や
ウェブフレームワークなどもある。
0317デフォルトの名無しさん
垢版 |
2016/07/20(水) 23:43:45.09ID:lrew/2ZZ
>PHPってHTML言語
Perl厨は他の言語をロクに知りもしないで
敬遠してるんだろうな。
だからPerl厨はいつまで経っても
エンジニアとして半人前なのだろう。
0318デフォルトの名無しさん
垢版 |
2016/07/20(水) 23:47:10.52ID:E5afqhTD
309ではないがC言語。もちろんPerlもだ。
ついでなんで
s/ピログラム言語/プログラム言語/;
0319デフォルトの名無しさん
垢版 |
2016/07/20(水) 23:55:15.99ID:gGnx4FL9
Cって純粋なC?
ご冗談を。
あれは何も文字を扱ってないよ。
自分で作って下さい、ってね。
0320デフォルトの名無しさん
垢版 |
2016/07/20(水) 23:58:27.03ID:gGnx4FL9
>>316
だからなに?
その機能'(笑)はわざわざ書かなくてはならないことなの?
だから文字の扱いに対してもおかしな考えを持つんだね。
文字を扱うのは言語の機能(笑)が大事なんだってね。

基本プログラムが出来ない人はスクリプトが持つ機能とやらに注目したがる。
自分でプログラミングできないからね。
0321デフォルトの名無しさん
垢版 |
2016/07/21(木) 00:13:43.65ID:qEfVH42B
普通のunix処理系にperlは入ってるけどPHPは入ってないでしょ。
Webプログラミングなんてどうでもいい。システムプログラミングとか
テキストマイニングしたいんだって動機から入るとぱっと見PHPは目に入らないよ。
紹介がWeb用ですなんだし。
幼児的に誹謗中傷しないで諭すコミュ力をつけたほうが。。
0322デフォルトの名無しさん
垢版 |
2016/07/21(木) 01:02:15.71ID:eeWcI0WT
PerlとPHPを比較するって事自体、CGIの定番としてPerlが使われはじめた15〜20年ぐらい前の話だから
0323デフォルトの名無しさん
垢版 |
2016/07/21(木) 02:09:41.10ID:vaQfL518
>>320
> その機能'(笑)はわざわざ書かなくてはならないことなの?

わざわざ書かないとわからないでしょ?w

これ以外に何が必要なんだい?
言ってみ。
0326デフォルトの名無しさん
垢版 |
2016/07/21(木) 10:12:11.24ID:wN4yZ2B5
普通のunix処理系wwww
普通てwwwwwwwwwww
こんな曖昧でいい加減な単語を使って反論になると思ってんのかwww

こんな客観的数値も示せない思い込みが根拠になるなら
普通の人間はPerlなんざ使わねーよwwwwwwwww
普通の人間はなwwwwwwwwwwwwwwwwwwwwwww
0327デフォルトの名無しさん
垢版 |
2016/07/21(木) 14:22:48.08ID:+jQ9eKqj
perl-5.24.0.tar.gz 開いて見てみたけど
ソースはC言語で書かれているんだよね

作った人は「自分で作って下さい」を実行したんだろうね
0329デフォルトの名無しさん
垢版 |
2016/07/22(金) 02:53:58.61ID:jSbimIDf
>>316
post/getがよしなにスーパーグローバル変数(笑)に入ったり
何もしなくてもエラーがブラウザで見られたり(言語がhttpプロトコルを理解できてる?)
iniファイルで挙動が変わったり
ごく普通のプログラム言語からはかけ離れてるだろ
Javascriptの方がよっぽど普通なんだけどなぁ
0330デフォルトの名無しさん
垢版 |
2016/07/22(金) 03:14:36.53ID:7iYsigKa
> post/getがよしなにスーパーグローバル変数(笑)に入ったり
それは10年以上前の話だよw
知識止まってんなぁ。
0331デフォルトの名無しさん
垢版 |
2016/07/22(金) 03:31:19.54ID:jSbimIDf
>>330
お前の使ってるナウ(笑)なPHPはquerystringに値いれてもvar_dump($_GET)するとnullなの?
言語って10年経とうが根本的な部分はそうそう変わんないだぜ
0333デフォルトの名無しさん
垢版 |
2016/07/22(金) 09:01:23.54ID:jSbimIDf
>>332
それはCGIとかがquerystringを環境変数へセットしてるだけであって(postは標準入力)
環境変数や標準入力、argsを読む機構はperlに限らずどの言語で備えてるでしょ。
デリミタも指定せずname[]のようなオレオレ仕様で勝手に解釈して予め変数に入れるのを
言語のレイヤーで行うのはphpぐらいしか思いつかない。
0336デフォルトの名無しさん
垢版 |
2016/07/22(金) 13:21:21.28ID:9lWfzFCE
いきなりなんの前触れもなかったし、何言ってんだ?と思ったら、PHPのdisりかよ。
知らんがな…
0338デフォルトの名無しさん
垢版 |
2016/07/22(金) 14:50:50.79ID:jisYPSD0
言い訳が苦しくなってくると、最後に「だけ」を付加するPerl厨
窃盗犯が「ちょっと借りただけだろ」と言い訳するのと同じ
犯罪者と同じ思考パターンを有するPerl厨

ちなみに犯罪者と同じ思考パターンを持つヴァカがPerlを選ぶのか
Perlを使ってるうちに犯罪者と同じ思考パターンを持つようになるのかは不明

どちらにせよPerl厨はヴァカで犯罪者予備軍ということに変わりはない
まともな人間はPHPを選ぶ
0341デフォルトの名無しさん
垢版 |
2016/07/22(金) 23:38:00.41ID:SRU6z2ZT
はいはい。犯罪者予備軍ね。NGにしときますわ。
やりたいことやりたい人は処理系にこだわりはないのにアホか。
コード書けない中学生がVBよりVCと言ってるのと変わらんわ。
0342デフォルトの名無しさん
垢版 |
2016/07/23(土) 01:01:50.42ID:tWjtYIW6
>>340
逆だろ?

PHPが他の言語と一緒だということを証明するために
他の言語でもあるような機能を言う。
PHPは他の言語と同じであることを示すことが、正しい論破の仕方だ。

PHPは「他の言語+αの機能」であるという事実に対して
それと同じものを出すことで、何を論破することになるのか?
0343デフォルトの名無しさん
垢版 |
2016/07/23(土) 02:01:49.49ID:bOUqJlZz
そろそろ邪魔くさくなったから消えてほしい
劣等感のかたまりは迷惑関係なく必死で長所をアピールしはじめるってね
適切なスレでやってくれんかね
0344デフォルトの名無しさん
垢版 |
2016/07/23(土) 02:30:45.09ID:Z+5onCph
嫌なら見なければいいのに
他人にあっちいけとか指示する池沼っているよな。
自己中心的な池沼のお手本。
0345デフォルトの名無しさん
垢版 |
2016/07/23(土) 08:35:47.91ID:rC+TU0A1
他プロセスでファイルをopenしているときにそのファイルをrenameしようとすると
renameできないみたいだけどうまくrenameする方法は?
0347デフォルトの名無しさん
垢版 |
2016/07/23(土) 11:14:44.62ID:rC+TU0A1
>>346
それだとopenとcloseする間にrenameが割り込むとだめ

そこで自分で方法を考えました
まずディレクトリにaccess_kinshi.datというファイルを作ります
このファイルが存在している間は他プロセスでこのディレクトリにあるファイルは全てアクセスできないものとする
そしてディレクトリ内にあるファイルを全てrenameする
そのあとaccess_kinshi.datファイルを削除すればいいということです
0349デフォルトの名無しさん
垢版 |
2016/07/23(土) 15:21:23.54ID:bOUqJlZz
他のプロセスってなに?
どっちもPerlで自分の作った物なら、ファイルロックでも使うと良い。
自動待機してくれる
0350デフォルトの名無しさん
垢版 |
2016/07/23(土) 19:27:38.24ID:IQFGkMCr
後方参照で教えていただきたいことがあります。
A 80 90
(空白の部分はタブかスペース)
と書いてあるファイルの80とか90の部分を書き換えたいのです。
perl -pe 's/^([A-Z])(\s+)([0-9]{2})(\s+)([0-9]{2})/$1$2$3$4$5/' file で
マッチした部分を参照できるのはわかっているのですが、この場合$3の「80」を「1」にするには
どのような方法をとればよいでしょうか?
perl -pe 's/^([A-Z])(\s+)([0-9]{2})(\s+)([0-9]{2})/$1$21$4$5/' file とすると
$21と解釈されるようで結果がA 90となってしまいます。
0353デフォルトの名無しさん
垢版 |
2016/07/23(土) 20:22:22.12ID:rC+TU0A1
>>349
他プロセスとは同じプログラムを複数で同時実行したやつです
それとファイルロックだとディレクトリにあるファイル1つ1つにロックしなきゃならないので
ディレクトリにあるファイル全てにアクセス禁止するために
アクセス禁止用ファイルを作りました
0355デフォルトの名無しさん
垢版 |
2016/07/23(土) 20:41:29.11ID:KzTkH9Ph
自分で考えているというのは大変良いことだと思うけど、聞きたいことがあるなら
環境くらいは書いてくれないと……
それに、使用中のファイルを rename することの何が問題なのかさっぱり解らない。
まず、何をするプログラムなのかを書いた方がいいと思うよ。
0356デフォルトの名無しさん
垢版 |
2016/07/23(土) 22:25:30.57ID:rC+TU0A1
a
0357デフォルトの名無しさん
垢版 |
2016/07/23(土) 22:36:22.09ID:rC+TU0A1
なんか書き込こもうとするとエラーが出て書き込めないわ
0358デフォルトの名無しさん
垢版 |
2016/07/23(土) 22:48:53.55ID:rC+TU0A1
ようするに
てすと1シージーアイ
OPEN(IN、”あああ.DAT”);
すりーぷ(5);
cLOSE(IN);


てすと2シージーアイ
リネーム(”あああ.DAT”、”AAA。DAT”);
これを同時実行してもリネームはできなかったってこと
0359デフォルトの名無しさん
垢版 |
2016/07/23(土) 22:51:17.71ID:rC+TU0A1
同時実行って言ったけど先にてすと1の方を起動して5秒以内にてすと2を起動です
0360デフォルトの名無しさん
垢版 |
2016/07/23(土) 23:18:44.54ID:eYAwBGPh
他のプロセスが開いているファイルを、更新できるわけないだろ

2つのプロセスで、ファイル共有できるのは、read & read、の組み合わせだけ。
read & write, write & read, write & write は、共有できない
0361デフォルトの名無しさん
垢版 |
2016/07/23(土) 23:40:01.25ID:sc8oJJPG
>他のプロセスが開いているファイルを、更新できるわけないだろ

何を前提に話してんだ?
更新出来るから、ファイルロックなぞの方法が開発されたんじゃねーの?
$ for i in 1 2 3 4 5 ; do
> perl -le 'open my $f, q{>>}, q{foo.txt} ; print $f q{foo} ; sleep 2' &
> done
$ cat foo.txt
foo
foo
foo
foo
foo
■ このスレッドは過去ログ倉庫に格納されています

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