かつて一斉を風靡したPerlについての当時のモダンな質問をするための質問箱です。
【一つ前のスレのテンプレ】当時の状況を鑑みまた芸術作品であることに配慮して原文のままとした。
【モダン推奨】Perlについての質問箱 50箱目
CGI についての質問は板違いです。WEB プログラミング板でどうぞ。
CGI と Perl の区別がつかない人も WEB プログラミング板に行ってください。
(WEB プログラミング板: http://hibari.2ch.net/php/ )
回答する際はモダンな方法でお願いします
(例 jcode.plではなくEncodeモジュールを使った方法)
理由はもう2012年です。いい加減2000年以前の方法はやめましょう。
最新のPerlを使うほうがかっこいいです。
いつまで勉強しないつもりですか?
過去にとらわれるのはもうやめです。進歩しませんよ。
このスレでは(CGI 以外の)純粋にPerlのみに関係する質問を取り扱っていこうと思います。
スレ違いの質問にはスルーか、速やかな誘導をお願いします。
"The duct tape of the Internet" こと、Perl についての質問箱です。
"There's more than one way to do it" ということで、
Perl の奥深さについて皆で語り合い、追求してまいりましょう。
http://www.perl.org/get.html
● 2011/10/30 現在の最新版: 5.14.2
▼ 前スレ
Perlについての質問箱 49箱目
http://toro.2ch.net/test/read.cgi/tech/1319953460/
リンク集は >>2-3辺り
Perl 日本語処理の基礎の基礎 >>4辺り
【古典的モダン】Perlについての質問箱 51箱目
■ このスレッドは過去ログ倉庫に格納されています
2021/05/26(水) 10:55:29.83ID:+WmbAELr
153デフォルトの名無しさん
2022/01/04(火) 14:31:56.40ID:3tVRYKmq チェッカーにかけるとエスケープしなくていいものをエスケープしてると指摘される
154デフォルトの名無しさん
2022/01/04(火) 15:57:51.97ID:GepGyN7D Perlに慣れすぎると、Sedとかで事故りがち。
155デフォルトの名無しさん
2022/02/12(土) 12:48:37.74ID:93miCQ0j sedに戻る必要とかあるの?
156デフォルトの名無しさん
2022/02/12(土) 23:03:57.39ID:0bMK8p7w あるときもある。
157デフォルトの名無しさん
2022/02/13(日) 00:17:15.83ID:zkxSitr3 最新言語から見ればsedもperlも同じ
158デフォルトの名無しさん
2022/02/13(日) 11:34:49.61ID:WhYN9s0d sed使うときは-Eオプション使うとマシになるよ
grepなんか-Pオプションなんてあるし
grepなんか-Pオプションなんてあるし
159デフォルトの名無しさん
2022/02/13(日) 11:42:02.90ID:zkxSitr3 grepは今でも普通に使う
perlより圧倒的に速い
perlより圧倒的に速い
160デフォルトの名無しさん
2022/02/13(日) 12:48:15.74ID:4VAZuwGn MINGW版のgrepは-Pオプション使えないんだよなあ
161デフォルトの名無しさん
2022/02/14(月) 18:49:00.35ID:kp1rSO4P うちのは使えるみたいだな
$ grep --version
GNU grep 2.5.4
Copyright (C) 2009 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.
$ grep --help | egrep '(-P|-o)'
-P, --perl-regexp PATTERN is a Perl regular expression
-b, --byte-offset print the byte offset with output lines
-o, --only-matching show only the part of a line matching PATTERN
-u, --unix-byte-offsets report offsets as if CRs were not there (MSDOS)
$ uname
MINGW32_NT-6.2
$ grep --version
GNU grep 2.5.4
Copyright (C) 2009 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.
$ grep --help | egrep '(-P|-o)'
-P, --perl-regexp PATTERN is a Perl regular expression
-b, --byte-offset print the byte offset with output lines
-o, --only-matching show only the part of a line matching PATTERN
-u, --unix-byte-offsets report offsets as if CRs were not there (MSDOS)
$ uname
MINGW32_NT-6.2
162デフォルトの名無しさん
2022/02/14(月) 19:43:31.51ID:SjaA8f+R 'grep' は、内部コマンドまたは外部コマンド、
操作可能なプログラムまたはバッチ ファイルとして認識されていません。
操作可能なプログラムまたはバッチ ファイルとして認識されていません。
163160
2022/02/14(月) 20:21:12.04ID:xbNILGkv MINGWではなくGit for Windows 2.35.1.2のMSYSに訂正
C:\Program Files\Git\usr\binにPATHを通している
>uname
MSYS_NT-10.0-19041
>grep --version
grep (GNU grep) 3.0
Copyright (C) 2017 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>.
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.
Written by Mike Haertel and others, see <http://git.sv.gnu.org/cgit/grep.git/tree/AUTHORS>.
>grep -P foo
/usr/bin/grep: -P supports only unibyte and UTF-8 locales
以下、Chocolateyのgrepの場合
>grep --version
grep.exe (GNU grep) 3.7
Copyright (C) 2021 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <https://gnu.org/licenses/gpl.html>.
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.
Written by Mike Haertel and others; see
<https://git.sv.gnu.org/cgit/grep.git/tree/AUTHORS>.
Patched by: Michael M. Builov <mbuilov@gmail.com>.
>grep -P foo
grep.exe: Perl matching not supported in a --disable-perl-regexp build
C:\Program Files\Git\usr\binにPATHを通している
>uname
MSYS_NT-10.0-19041
>grep --version
grep (GNU grep) 3.0
Copyright (C) 2017 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>.
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.
Written by Mike Haertel and others, see <http://git.sv.gnu.org/cgit/grep.git/tree/AUTHORS>.
>grep -P foo
/usr/bin/grep: -P supports only unibyte and UTF-8 locales
以下、Chocolateyのgrepの場合
>grep --version
grep.exe (GNU grep) 3.7
Copyright (C) 2021 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <https://gnu.org/licenses/gpl.html>.
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.
Written by Mike Haertel and others; see
<https://git.sv.gnu.org/cgit/grep.git/tree/AUTHORS>.
Patched by: Michael M. Builov <mbuilov@gmail.com>.
>grep -P foo
grep.exe: Perl matching not supported in a --disable-perl-regexp build
164160
2022/02/14(月) 20:33:42.00ID:xbNILGkv 失礼
環境変数に LC_CTYPE=ja_JP.UTF-8がセットされてなかっただけらしい
環境変数に LC_CTYPE=ja_JP.UTF-8がセットされてなかっただけらしい
165160
2022/02/14(月) 20:39:16.14ID:xbNILGkv Chocolateyのgrepは環境変数に LC_CTYPE=ja_JP.UTF-8がセットされててもダメ
grep --helpコマンドで-Pオプション表示されるけど実際には使えない
grep --helpコマンドで-Pオプション表示されるけど実際には使えない
166デフォルトの名無しさん
2022/02/14(月) 22:36:54.77ID:CumnTUFy Git for Windowsのgrepはおまけみたいなもんやろ。
しゃあない。
Git以外も使うんならMSYS2にするべき。
しゃあない。
Git以外も使うんならMSYS2にするべき。
167デフォルトの名無しさん
2022/02/14(月) 22:38:38.84ID:SjaA8f+R WSLでいい
168デフォルトの名無しさん
2022/02/15(火) 08:43:15.81ID:5Cl7umfN というかwinならsls使えるんでは
169デフォルトの名無しさん
2022/02/15(火) 09:33:33.33ID:CMc47lH5 部分マッチ情報とか付いた$_が任意のコードブロックに渡せるし普通にgrepより強い、perlっぽいし
ただし内部コマンドなのが玉に瑕
bashとかの非標準シェルを使ってるとpwsh -cにパイプや引数で渡す必要があるし、$_等のシェル変数使うから後で参照できねえ
ただし内部コマンドなのが玉に瑕
bashとかの非標準シェルを使ってるとpwsh -cにパイプや引数で渡す必要があるし、$_等のシェル変数使うから後で参照できねえ
170デフォルトの名無しさん
2022/02/15(火) 12:43:38.51ID:LH9Iimee WSL2, Ubuntu 18.04 では、
grep --version
grep (GNU grep) 3.1
-P, --perl-regexp
PATTERN を Perl の正規表現として扱います。
きわめて実験的なものなので、
grep -P を使うと、その機能は実装されていません、という警告が出るかもしれません
grep --version
grep (GNU grep) 3.1
-P, --perl-regexp
PATTERN を Perl の正規表現として扱います。
きわめて実験的なものなので、
grep -P を使うと、その機能は実装されていません、という警告が出るかもしれません
171デフォルトの名無しさん
2022/02/15(火) 14:44:11.29ID:ch4uHJq0 windows版だけの問題なのか?
gnu grepの-Pはもう少なくとも十年以上その表記
そもそもundocumentedだが、サブパターンのネスト、バックトラック切り、アサーション周りが怪しい
windows使ってるなら標準コマンドのselect-stringを使え
(?>)(?<=)(?<!)(?=)等表記も標準的
-r相当のオプションは無いけどgciがfind同等のコマンドだからパイプするのがイディオム(未テスト)
> get-childitem /some/where -recurse -depth 1 |select-string [-opts] "pat"
windowsでbash使ってるなら多分こんな感じになるだろう
bash$ perl -E 'say "@INC"; ' |pwsh -c '
$input -split " " |gci -r -d 1 -inc "*.pod" -exc "*delta*" |sls "^=head NAME"
'
汚なくて嫌ならperlを使え、そのためのPerlだ
gnu grepの-Pはもう少なくとも十年以上その表記
そもそもundocumentedだが、サブパターンのネスト、バックトラック切り、アサーション周りが怪しい
windows使ってるなら標準コマンドのselect-stringを使え
(?>)(?<=)(?<!)(?=)等表記も標準的
-r相当のオプションは無いけどgciがfind同等のコマンドだからパイプするのがイディオム(未テスト)
> get-childitem /some/where -recurse -depth 1 |select-string [-opts] "pat"
windowsでbash使ってるなら多分こんな感じになるだろう
bash$ perl -E 'say "@INC"; ' |pwsh -c '
$input -split " " |gci -r -d 1 -inc "*.pod" -exc "*delta*" |sls "^=head NAME"
'
汚なくて嫌ならperlを使え、そのためのPerlだ
172デフォルトの名無しさん
2022/02/15(火) 14:49:23.52ID:ch4uHJq0 あ、最後のslsに -contextが抜けてた
sls -con 2 "..."でname - descrを表示する意図だった、念の為
sls -con 2 "..."でname - descrを表示する意図だった、念の為
173デフォルトの名無しさん
2022/02/15(火) 15:05:25.32ID:RAmS19mH ずいぶんエラソーですね
174デフォルトの名無しさん
2022/02/16(水) 03:32:34.88ID:Mkae6rZq 誰だか何となくワカタ
175デフォルトの名無しさん
2022/02/16(水) 08:25:04.50ID:Kby4UhL4 ワロw
176デフォルトの名無しさん
2022/02/23(水) 22:59:01.37ID:VOimcA5h 薄めのORMない?小さめのスクリプトにはDBICいくらなんでも重すぎる
177デフォルトの名無しさん
2022/02/26(土) 11:08:00.76ID:0iPdwkze Teng
178デフォルトの名無しさん
2022/05/16(月) 21:11:45.65ID:XzOAdinb あげ
179デフォルトの名無しさん
2022/05/18(水) 23:59:05.74ID:Tv2EzwC/ 未だにpythonで
push array, value
とか書いてエラーになる
正しくは
array.append(value)
どうにも窮屈だな
push array, value
とか書いてエラーになる
正しくは
array.append(value)
どうにも窮屈だな
180デフォルトの名無しさん
2022/05/19(木) 01:14:38.83ID:fIfBGhTn push = lambda a,v: a.append(v)
181デフォルトの名無しさん
2022/05/19(木) 01:18:01.10ID:fIfBGhTn lambdaに名付けるとリンタに怒られるんだっけか
push = list.append
push (array, value)
が多分真っ当でたぶん動く
push = list.append
push (array, value)
が多分真っ当でたぶん動く
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 中国からの留学中止相次ぐ 中国外務省「日本の治安が悪化」 [♪♪♪★]
- 特攻機と同じ名称「桜花中」、福岡・大牟田市の新設中学校名に異論 市民団体が再考申し入れ [少考さん★]
- サウナ火災で夫婦死亡 非常ボタンが“電源切れ”★2 [夜のけいちゃん★]
- 町山智浩「日本のパンダ経済効果は308億円」…「…いらない」と言ってる人達は、パンダで暮らす人々の損害補填してくれるのか…と問う★2 [少考さん★]
- 個人金融資産、2286兆円 9月末、過去最高更新―日銀 [少考さん★]
- 「育休もらい逃げ」はずるい?🤔職場復帰しないで辞めるはアリかナシか [パンナ・コッタ★]
- 【高市速報】デヴィ夫人「中国の暴虐に対し、日本の方々よ、全員で戦いましょう」😮 [518915984]
- マチアプSEXリレー5日目のワイが今日もヤレるか予想して
- テレビ局「なんでお前ら、テレビ見なくなっちゃったの;;」 [161547316]
- 赤坂サウナ蒸し焼き事件の夫婦のインスタ「娘の名前は汐亜(せあ)、英語でかくとSea、海が似合う娘に育ったらいいなって。笑」 [329329848]
- 愛国保守さんが日本に無謀な戦争をさせようとしてる理由がマジでわからん… [819729701]
- 【朗報】井川意高「日本がアジア解放をしたというのは嘘、日本が勝ってたらアジアを再植.民地化してただけ」 [931522839]
