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/
探検
Perlについての質問箱 64箱目
レス数が1000を超えています。これ以上書き込みはできません。
2019/02/01(金) 09:44:37.18ID:1/Kr4Qjk
965デフォルトの名無しさん
2021/03/09(火) 01:17:12.50ID:B0uPByTP966928
2021/03/09(火) 05:19:08.22ID:NUN2sKP0 >>925
Ruby で、元のファイルを、CSV へ変換してみた。
データ中に、ダブルクォーテーション・カンマを入れても、正常に動く
require 'csv'
line_number = 0 # 行番号
# 行末の改行を削除して、1行ずつ処理する。蓄積変数は2次元配列
results = File.foreach( "input.txt", chomp: true ).with_object( [ ] ) do |line, accm|
line_number += 1
accm.push [ ] if line_number % 3 == 1 # 3行毎に、空配列を追加する
ary = line.split( ':', 2 ) # 左からコロンで、2つに分割する
last = accm.last # 最後の要素 (配列)
last.push( ary[ 1 ] ) # コロンの右側を、配列に追加する
end
results.unshift %w(start end value) # 先頭に、ヘッダー行を追加する
# p results
csv_str = results.map( &:to_csv ).join # 2次元配列を、CSV 文字列に変換する
print csv_str
出力
start,end,value
a_1,"b""1",1
"a,2",b_2,2.34
Ruby で、元のファイルを、CSV へ変換してみた。
データ中に、ダブルクォーテーション・カンマを入れても、正常に動く
require 'csv'
line_number = 0 # 行番号
# 行末の改行を削除して、1行ずつ処理する。蓄積変数は2次元配列
results = File.foreach( "input.txt", chomp: true ).with_object( [ ] ) do |line, accm|
line_number += 1
accm.push [ ] if line_number % 3 == 1 # 3行毎に、空配列を追加する
ary = line.split( ':', 2 ) # 左からコロンで、2つに分割する
last = accm.last # 最後の要素 (配列)
last.push( ary[ 1 ] ) # コロンの右側を、配列に追加する
end
results.unshift %w(start end value) # 先頭に、ヘッダー行を追加する
# p results
csv_str = results.map( &:to_csv ).join # 2次元配列を、CSV 文字列に変換する
print csv_str
出力
start,end,value
a_1,"b""1",1
"a,2",b_2,2.34
967デフォルトの名無しさん
2021/03/09(火) 08:00:45.91ID:4CK4kuWA コマンドプロントはとっくにUTF-16対応している。出力フォントが表示に対応していないだけ。
コマンドプロントにはもう機能追加されないから Windows Terminalに乗り換えたほうがいい。
コマンドプロントにはもう機能追加されないから Windows Terminalに乗り換えたほうがいい。
968デフォルトの名無しさん
2021/03/09(火) 08:27:17.16ID:4CK4kuWA コマンドプロントは今でもすでに非システムコード文字(アラビア文字やハングルなど)をコマンドに引数渡しできる。
受け取る側のアプリがUTF-16形式で起動時の引数を取らなかったり、batファイルが非システムコード文字に対応していないだけ。
コマンドプロントの努力だけではどうしようもない。
なお、Windows向けビルドされたJavaやPerlは非システムコード文字を引数で受け取れない制約がある。
プログラム側で自力でbase64エンコード対応するなどして回避するしかない。
一方、Windows向けビルドされたPythonは非システムコード文字を引数で受け取ることができる。
Pythonのプラグインを作ったことある人なら分かると思うが、Pythonはインターフェース間の文字列のやりとりにUTF-16を使っている。
受け取る側のアプリがUTF-16形式で起動時の引数を取らなかったり、batファイルが非システムコード文字に対応していないだけ。
コマンドプロントの努力だけではどうしようもない。
なお、Windows向けビルドされたJavaやPerlは非システムコード文字を引数で受け取れない制約がある。
プログラム側で自力でbase64エンコード対応するなどして回避するしかない。
一方、Windows向けビルドされたPythonは非システムコード文字を引数で受け取ることができる。
Pythonのプラグインを作ったことある人なら分かると思うが、Pythonはインターフェース間の文字列のやりとりにUTF-16を使っている。
969デフォルトの名無しさん
2021/03/09(火) 08:33:53.42ID:HJK4uNxM UTF-16も嬉しくない
970532
2021/03/09(火) 08:45:38.83ID:UTQZC5u1 NTFSってUTF-16だったのか、
しかしperlのreaddirはcp932で返してきているような気がs…
しかしperlのreaddirはcp932で返してきているような気がs…
971デフォルトの名無しさん
2021/03/09(火) 09:28:02.71ID:HJK4uNxM NTFSはUCS-2で、windowsがUTF-16
それをわざわざcp932に変換して寄越す
それをわざわざcp932に変換して寄越す
972デフォルトの名無しさん
2021/03/09(火) 10:42:13.66ID:4CK4kuWA NTFSもUTF-16だと思うよ。
973デフォルトの名無しさん
2021/03/09(火) 10:44:51.95ID:SbXzcieK >>968
> コマンドプロントの努力だけではどうしようもない。
そらそうや。
ついにcp932から離れようとする世の方向性を受けて、Perlも変わるんじゃねえの、という話。
Perl7とかでそういう話は出てないんかな?
知らんけど。
> なお、Windows向けビルドされたJavaやPerlは非システムコード文字を引数で受け取れない制約がある。
制約つーか、むしろ互換維持とかただ昔のままほったらかしとかやろ。w
> コマンドプロントの努力だけではどうしようもない。
そらそうや。
ついにcp932から離れようとする世の方向性を受けて、Perlも変わるんじゃねえの、という話。
Perl7とかでそういう話は出てないんかな?
知らんけど。
> なお、Windows向けビルドされたJavaやPerlは非システムコード文字を引数で受け取れない制約がある。
制約つーか、むしろ互換維持とかただ昔のままほったらかしとかやろ。w
974デフォルトの名無しさん
2021/03/09(火) 10:56:11.55ID:SbXzcieK975デフォルトの名無しさん
2021/03/09(火) 12:55:12.46ID:NUN2sKP0 Windows 10 Home でも、Docker が出来るようになった。
ただし、Windowsの連続更新に、3時間も掛かったけど
WSL2, Ubuntu でも使えば?
漏れは、Ruby on Rails をやってる
Linux側には、日本人が作った、バージョンマネージャーのanyenv で、
rbenv, nodenv を使って、ruby 2.6.6, node 12.16.2 も入れた
Dockerでも良いし。
ただし、メモリ8GB じゃキツイ。16GB は欲しい
ただし、Windowsの連続更新に、3時間も掛かったけど
WSL2, Ubuntu でも使えば?
漏れは、Ruby on Rails をやってる
Linux側には、日本人が作った、バージョンマネージャーのanyenv で、
rbenv, nodenv を使って、ruby 2.6.6, node 12.16.2 も入れた
Dockerでも良いし。
ただし、メモリ8GB じゃキツイ。16GB は欲しい
976デフォルトの名無しさん
2021/03/09(火) 20:18:30.71ID:BijZjsz/ 正規表現のパターンの中に変数を書くとおかしくなりますが、どうしたらいいでしょうか。
やりたいこと:「hoge」の後ろがカンマか行末の場合を抽出したい
$pat = "hoge[,\$\]";
if( $str =~ m/$pat/ ){...}
こう書くと $pat が「hoge[,$]」になることはデバッガで確認できたのですが、思った通りのマッチになりません。マッチングの部分に $pat ではなく定数で「hoge[,$]」と書けばマッチングします。
どう書いたらいいでしょうか?
やりたいこと:「hoge」の後ろがカンマか行末の場合を抽出したい
$pat = "hoge[,\$\]";
if( $str =~ m/$pat/ ){...}
こう書くと $pat が「hoge[,$]」になることはデバッガで確認できたのですが、思った通りのマッチになりません。マッチングの部分に $pat ではなく定数で「hoge[,$]」と書けばマッチングします。
どう書いたらいいでしょうか?
977デフォルトの名無しさん
2021/03/09(火) 20:28:25.57ID:HJK4uNxM なんで ] だけエスケープしてるの?
978デフォルトの名無しさん
2021/03/09(火) 20:34:49.51ID:nUvu3sQ4 そういうときの為のqrですよ
979デフォルトの名無しさん
2021/03/09(火) 20:36:21.19ID:XI91xcQL []内は文字セットだからその$は行末マッチじゃないし
980976
2021/03/09(火) 22:41:12.95ID:BijZjsz/981デフォルトの名無しさん
2021/03/09(火) 22:43:46.86ID:HJK4uNxM {0,1}って?と等価だよね
982デフォルトの名無しさん
2021/03/09(火) 23:03:58.63ID:B0uPByTP983デフォルトの名無しさん
2021/03/10(水) 02:28:31.13ID:ixLG+AYE hoge(,|$)
やりたいのはコレじゃない?
やりたいのはコレじゃない?
984デフォルトの名無しさん
2021/03/10(水) 06:16:01.51ID:S+G6vYN6985976
2021/03/11(木) 11:15:21.72ID:VAAe2gi6 みなさん、こんなアホに付き合ってもらってありがとうございます。
疲れてたのかな、俺。
まだ試してませんが、教えていただいたやり方でチャレンジしてみます。
疲れてたのかな、俺。
まだ試してませんが、教えていただいたやり方でチャレンジしてみます。
986532
2021/03/11(木) 11:39:56.33ID:AlcqB+X5 $pat = 'hoge(?:,.*)?$';
print "1\n" if 'hoge,dsad' =~ $pat;
print "2\n" if 'hoge' =~ $pat;
print "3\n" if 'hage' =~ $pat;
はどうよ
実行例
~ $ perl 64_976_hoge_pat.pl
1
2
print "1\n" if 'hoge,dsad' =~ $pat;
print "2\n" if 'hoge' =~ $pat;
print "3\n" if 'hage' =~ $pat;
はどうよ
実行例
~ $ perl 64_976_hoge_pat.pl
1
2
987デフォルトの名無しさん
2021/03/11(木) 14:27:02.78ID:IdZJgmDv もしかして
¥bhoge¥b
がよかったんじゃないの?
¥bhoge¥b
がよかったんじゃないの?
988デフォルトの名無しさん
2021/03/11(木) 14:37:57.64ID:l5V9NIZG splitをうまく使うと解決したかも
989デフォルトの名無しさん
2021/03/20(土) 13:47:35.09ID:UD6ZNZG9 梅
990デフォルトの名無しさん
2021/03/20(土) 13:51:21.40ID:UD6ZNZG9 Python勉強中
print('梅')
exit()
print('梅')
exit()
991デフォルトの名無しさん
2021/03/20(土) 17:31:10.22ID:ql2G31oz 【モダン推奨】Perlについての質問箱 50箱目
https://mevius.5ch.net/test/read.cgi/tech/1327110999/
https://mevius.5ch.net/test/read.cgi/tech/1327110999/
992デフォルトの名無しさん
2021/03/21(日) 17:34:20.99ID:2t2VtxHB 夢
993デフォルトの名無しさん
2021/03/21(日) 17:36:32.63ID:dkvLNxnd 爪
994デフォルトの名無しさん
2021/03/21(日) 17:39:12.82ID:2t2VtxHB うぜ
995デフォルトの名無しさん
2021/03/21(日) 21:54:16.28ID:6DoINzzO 2年で消化 人気スレじゃねーか
996デフォルトの名無しさん
2021/03/22(月) 01:23:08.94ID:rCEIiEgY うめ
997デフォルトの名無しさん
2021/03/22(月) 23:39:18.97ID:rCEIiEgY ↑
998デフォルトの名無しさん
2021/03/22(月) 23:39:30.86ID:rCEIiEgY 上
999デフォルトの名無しさん
2021/03/22(月) 23:40:13.68ID:rCEIiEgY 質問いいですか?
1000デフォルトの名無しさん
2021/03/22(月) 23:41:34.32ID:rCEIiEgY おしまい
10011001
Over 1000Thread このスレッドは1000を超えました。
新しいスレッドを立ててください。
life time: 780日 13時間 56分 57秒
新しいスレッドを立ててください。
life time: 780日 13時間 56分 57秒
レス数が1000を超えています。これ以上書き込みはできません。
ニュース
- 「インバウンド政策上、中国は重要」、訪日自粛で金子国交相「早く通常の状況に戻っていただきたい」 [ぐれ★]
- 今後50年間、毎年100万人ずつ人口が減る…「少子化対策」の失敗で日本が迎える「死ぬまで搾取」というヤバい未来 ★5 [ぐれ★]
- 中国外相、台湾問題巡りフランスに支持要請−高市首相発言「挑発的」 [♪♪♪★]
- 《「最近いつした?」が口癖》国分太一 女性への“わいせつ事案”報道…目撃されていた「下ネタ好き」と「悪辣なイジり癖」 [Ailuropoda melanoleuca★]
- スリランカ人男性の強制送還「中止を」 野党議員らが入管庁に要請 [♪♪♪★]
- 中国外務省「正式な発言撤回なければ受け入れず」 高市首相は台湾有事「存立危機事態」言及せずも「言及しないことと撤回は別問題」★5 [ぐれ★]
- 【動画】上海バンダイナムコフェス、ワンピース歌ってる途中に中国政府「日本人の公演全面禁止」発令された瞬間強制終了 怖すぎ★2 [579392623]
- 【速報】中国政府、ゲームを禁輸。原神やブルアカ、荒野行動が日本で影響 [347751896]
- 【んな🏡】金曜✨夜も~オールナイトんなっしょい❗🏰【姫森ルーナ】
- 現役JKのお茶会スレ( ¨̮ )︎︎𖠚ᐝ171
- 【悲報】人気声優・和久井優さん、年末予定されてた上海でのファン祭りが高市早苗よって緊急中止にさせられる…😭 [339712612]
- 【号外】人気アーティスト・ナトリさん「不可抗力により上海公演は中止なります…」高市早苗の犠牲者が加速止まらず [339712612]
