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箱目
■ このスレッドは過去ログ倉庫に格納されています
2019/02/01(金) 09:44:37.18ID:1/Kr4Qjk
740デフォルトの名無しさん
2020/10/20(火) 18:38:58.16ID:D4H7EOaJ >>739
よく解りました。ありがとうございました。
よく解りました。ありがとうございました。
741デフォルトの名無しさん
2020/10/20(火) 21:44:35.79ID:tFiyzFdf blib.pmはちゃんとuseされていて、blib.pmの動作としてエラー終了したということですか
742デフォルトの名無しさん
2020/10/20(火) 22:27:40.87ID:sh3hHW9L die "Cannot find blib even in $dir\n" って blib.pm のソースに思いっきり書いてあるがな
743デフォルトの名無しさん
2020/10/20(火) 23:34:27.10ID:tFiyzFdf なるほd
744デフォルトの名無しさん
2020/10/25(日) 10:29:53.41ID:eR26jTX4 ライブラリが読めてないのか、読めてるけどエラーになるのかの切り分けが必要だったな
745デフォルトの名無しさん
2020/10/25(日) 11:05:07.83ID:/f/Br1ml "¥n"なければ分かったのにね。
746デフォルトの名無しさん
2020/10/25(日) 11:49:26.86ID:/f/Br1ml あ、でもやってみたら@INCにない場合とメッセージ違うんだな。
とはいえ知らないと分からないよね。
とはいえ知らないと分からないよね。
747デフォルトの名無しさん
2020/10/27(火) 08:27:55.72ID:K6PuV+RV httpsをgetする楽な方法って何
748デフォルトの名無しさん
2020/10/27(火) 12:24:00.33ID:FNX2BsFN749デフォルトの名無しさん
2020/10/27(火) 22:34:11.97ID:wfYFUdXE >>747
Linux とかなら wget または curl コマンド。
Windows は知らないけど探せば同じコマンドあるんじゃないかな。
それとかPowerShellだと何かないか?ありそうだよな。俺知らないけど。
Linux とかなら wget または curl コマンド。
Windows は知らないけど探せば同じコマンドあるんじゃないかな。
それとかPowerShellだと何かないか?ありそうだよな。俺知らないけど。
750デフォルトの名無しさん
2020/10/27(火) 23:05:01.31ID:K6PuV+RV 難しいのう
firefoxから証明書をエクスポートして食わせてwgetしてもまだ成功しない
firefoxから証明書をエクスポートして食わせてwgetしてもまだ成功しない
751デフォルトの名無しさん
2020/10/27(火) 23:53:21.84ID:a7WAgl/q Ruby では、open-uri でHTML を取得して、nokogiri でスクレイピングできる。
または、begin〜end 内に書いた、curl コマンドでも取得できる
他には、wget や、VSCode の拡張機能、REST Client とか
require 'open-uri'
require 'nokogiri'
=begin
html = `curl https://example.com/`
doc = Nokogiri::HTML( html )
=end
url = "https://example.com/"
doc = Nokogiri::HTML( open( url ) )
elements = doc.css( "h1" )
puts elements.first.content #=> Example Domain
または、begin〜end 内に書いた、curl コマンドでも取得できる
他には、wget や、VSCode の拡張機能、REST Client とか
require 'open-uri'
require 'nokogiri'
=begin
html = `curl https://example.com/`
doc = Nokogiri::HTML( html )
=end
url = "https://example.com/"
doc = Nokogiri::HTML( open( url ) )
elements = doc.css( "h1" )
puts elements.first.content #=> Example Domain
752751
2020/10/28(水) 00:05:57.96ID:H1Ljm7vl Windows 10 には、curl.exe も入っている。
これは、PowerShell のcurl エイリアスとは異なる
コマンドプロンプトで、
where curl
C:\Windows\System32\curl.exe
これは、PowerShell のcurl エイリアスとは異なる
コマンドプロンプトで、
where curl
C:\Windows\System32\curl.exe
753デフォルトの名無しさん
2020/10/28(水) 00:13:29.52ID:BzF//FKs なんで ruby が出てくるんだろう
754デフォルトの名無しさん
2020/10/28(水) 06:24:58.52ID:SUh9rNlQ lwpが出ない時代になったのか……
755532
2020/10/28(水) 08:36:56.65ID:TnU9NEZC LWP::Protocol::https
がインストールされていれば
$url = "https://…";
require LWP::UserAgent; # with LWP::Protocol::https
$ua = LWP::UserAgent->new;
#$ua->agent('Mozilla/5.0 (Windows NT 6.3; WOW64; Trident/7.0; Touch; rv:11.0) like Gecko');
$s = LWP::UserAgent->new->get($url)->content;
がインストールされていれば
$url = "https://…";
require LWP::UserAgent; # with LWP::Protocol::https
$ua = LWP::UserAgent->new;
#$ua->agent('Mozilla/5.0 (Windows NT 6.3; WOW64; Trident/7.0; Touch; rv:11.0) like Gecko');
$s = LWP::UserAgent->new->get($url)->content;
756デフォルトの名無しさん
2020/10/28(水) 08:42:17.53ID:inVpsElI なんでそんな大事なもんがインストール必要なんだ
757デフォルトの名無しさん
2020/10/28(水) 13:29:32.90ID:l3R5yM/w ネットワーク関連は、原則別扱いやろ。
758デフォルトの名無しさん
2020/10/28(水) 18:43:51.13ID:14aXOJ7K そこはマジで面倒だなと思うね
pythonのrequestsモジュールとか何も考えずにできるし
pythonのrequestsモジュールとか何も考えずにできるし
759デフォルトの名無しさん
2020/10/28(水) 19:30:04.62ID:inVpsElI 電池は自分で買って下さい
760デフォルトの名無しさん
2020/10/28(水) 19:35:38.14ID:ITw4VFJA 今ならコアモジュールのHTTP::Tinyで十分でしょう
IO::Socket::SSLかNet::SSLeay をインストールする必要がありますが
pythonだってrequests
IO::Socket::SSLかNet::SSLeay をインストールする必要がありますが
pythonだってrequests
761デフォルトの名無しさん
2020/10/28(水) 19:36:09.55ID:ITw4VFJA は自分で入れなきゃいけないし
762751
2020/10/28(水) 22:46:17.13ID:H1Ljm7vl Ruby なんて、よく使うものは、標準で入っている
Battery Included・電池付き言語
Battery Included・電池付き言語
763デフォルトの名無しさん
2020/10/28(水) 22:58:53.02ID:A4Y862UG764デフォルトの名無しさん
2020/10/28(水) 23:18:21.09ID:inVpsElI 読点の使い方に決まったルールは無いんだよな
なんとなく集合的に多数派の使い方はあるけど、
それを気にしてる人しか身につかないし、
気にしてない人はどういう使われ方をしてても何も思わない
多数派の使い方から外れると何か困るかというと、特に困らない
気にしてる人だけなんか変と思うだけで、意思疎通に支障は無い
気にした方が負けという悲しい現状がある
なんとなく集合的に多数派の使い方はあるけど、
それを気にしてる人しか身につかないし、
気にしてない人はどういう使われ方をしてても何も思わない
多数派の使い方から外れると何か困るかというと、特に困らない
気にしてる人だけなんか変と思うだけで、意思疎通に支障は無い
気にした方が負けという悲しい現状がある
765532
2020/10/29(木) 00:33:18.30ID:2QXtbAjf そもそも言葉がそういうものだろ
だからかまわないというのは極論
というかそういう話もrubyも該当スレでやってくれ
だからかまわないというのは極論
というかそういう話もrubyも該当スレでやってくれ
766デフォルトの名無しさん
2020/10/29(木) 07:05:28.87ID:vmIccHQe 読点は、基本的には使わない
意図的に区切りを入れたい箇所で使う
区切りを入れる目的がいろいろあって、それが理由で明文化できない
一旦間を置くことで強調することができる
主節と従属節を明確にできる
誤読を防ぐ
読みやすくなる、等々
より良い文章を心がけている人しか読点はそもそも必要ない
自分は、文節の区切りが漢字で連続しているあるいはひらがなで連続している時に、
読みやすさの為に入れることがよくある
意図的に区切りを入れたい箇所で使う
区切りを入れる目的がいろいろあって、それが理由で明文化できない
一旦間を置くことで強調することができる
主節と従属節を明確にできる
誤読を防ぐ
読みやすくなる、等々
より良い文章を心がけている人しか読点はそもそも必要ない
自分は、文節の区切りが漢字で連続しているあるいはひらがなで連続している時に、
読みやすさの為に入れることがよくある
767デフォルトの名無しさん
2020/10/29(木) 08:52:06.32ID:z1UD/sEY 読点ふつうに使った文章でそれ言われても説得力ゼロやんな
768デフォルトの名無しさん
2020/10/29(木) 12:59:56.99ID:DfWTURJR 普段文ではあんまり使わないかな 空白を使うようになった
てか。もあんまり使わない。改行するようになった。
これ最近の傾向ね。
ちゃんとした文章の時は学校で習ったようにちゃんとするよ。
たまに見かける、多用の文章はバカっぽくて好きになれない。
てか。もあんまり使わない。改行するようになった。
これ最近の傾向ね。
ちゃんとした文章の時は学校で習ったようにちゃんとするよ。
たまに見かける、多用の文章はバカっぽくて好きになれない。
769デフォルトの名無しさん
2020/10/29(木) 16:41:07.61ID:6ZxgJt1a お前ら得意のうんちく・知ったかで生き生きしてるな
どうでもいい話題になると湧いてくるのな
どうでもいい話題になると湧いてくるのな
770デフォルトの名無しさん
2020/10/29(木) 23:07:14.55ID:XA006Kuj Perl好きの住人がいるんだよ。
なんかネタがあると湧いてくるが自分からは投入しない。
というか今更ないんだよな。
なんかネタがあると湧いてくるが自分からは投入しない。
というか今更ないんだよな。
771デフォルトの名無しさん
2020/10/30(金) 08:36:37.09ID:yt6Q5TzG LWP::Protocol::https はインストールしなくても入ってるみたいだけど、
やっぱりアクセスできない
やっぱりアクセスできない
772デフォルトの名無しさん
2020/10/30(金) 14:14:14.77ID:Nsw5dj/j773デフォルトの名無しさん
2020/10/30(金) 14:28:46.49ID:NEqe6Fpq IO::Socket::SSLかNet::SSLかが入ってないんじゃね?
774デフォルトの名無しさん
2020/10/30(金) 14:45:50.35ID:yt6Q5TzG 入ってなかったら入ってないというエラーになるんじゃないのかな
プロトコルのエラーになるんだよな
プロトコルのエラーになるんだよな
775デフォルトの名無しさん
2020/10/30(金) 16:51:58.64ID:yPjXBzu5776デフォルトの名無しさん
2020/10/30(金) 17:12:05.20ID:X2Arn8L3 Strawberry Perl 5.32 向けのTk、相変わらずビルドエラーを手動修正しないとインストールできない。
バンドルされているコンパイル環境の問題かもしれないけど、そのままってのはちょっと。
Tkって重要じゃね?どうよ?
バンドルされているコンパイル環境の問題かもしれないけど、そのままってのはちょっと。
Tkって重要じゃね?どうよ?
777デフォルトの名無しさん
2020/10/30(金) 17:49:50.64ID:Nsw5dj/j >>775
ほんのちょっと改善するだけでも十分だったのにな
ほんのちょっと改善するだけでも十分だったのにな
778デフォルトの名無しさん
2020/10/30(金) 19:26:17.53ID:yPjXBzu5 >>777
いや、大きな追加機能自体はおもしろそうなんだよ?
Grammarとか。
また、識別子にハイフンが使えるとか、トークンの区切りが原則はスペースとか、文法も興味深いかわりに、ほかと違いすぎて。。。
いや、大きな追加機能自体はおもしろそうなんだよ?
Grammarとか。
また、識別子にハイフンが使えるとか、トークンの区切りが原則はスペースとか、文法も興味深いかわりに、ほかと違いすぎて。。。
779デフォルトの名無しさん
2020/10/30(金) 19:42:16.02ID:Nsw5dj/j >>778
grammarは一見良さそうだけど字句解析と構文解析を同時にやる感じですげー難しくない?
grammarは一見良さそうだけど字句解析と構文解析を同時にやる感じですげー難しくない?
780デフォルトの名無しさん
2020/10/30(金) 20:46:03.54ID:J8RJfKX8 字句解析と構文解析は、表を使ったアルゴリズム自体は同一なので、一つの表にまとめられる。
しかし、分離できる場所で分離した場合に比べて表が大きくなるので、あまりお得じゃないと思う。
もちろん数ギガバイトのメモリーを積む現代のコンピュータでは、100メガバイトの表は決して非現実的ではないけれども。
ドラゴンブックが書かれた時代には、分けなければ実装できない程度の大きさだったと思う。
しかし、分離できる場所で分離した場合に比べて表が大きくなるので、あまりお得じゃないと思う。
もちろん数ギガバイトのメモリーを積む現代のコンピュータでは、100メガバイトの表は決して非現実的ではないけれども。
ドラゴンブックが書かれた時代には、分けなければ実装できない程度の大きさだったと思う。
781デフォルトの名無しさん
2020/10/30(金) 21:02:37.09ID:yPjXBzu5782デフォルトの名無しさん
2020/10/30(金) 21:50:10.07ID:9WzSAA4o >>774
例えばlwp-downloadとかでもアクセスできない?
例えばlwp-downloadとかでもアクセスできない?
783デフォルトの名無しさん
2020/10/30(金) 22:09:51.09ID:Nsw5dj/j >>781
アルゴリズムが違うからなんとも言えんが
バックトラックしないのでカーソルの位置を常に意識しなきゃいけないのがすごくキツい
あこれマッチしないの?ってことが多々あって慣れなんだろうがキツい
デバッグも大変
アルゴリズムが違うからなんとも言えんが
バックトラックしないのでカーソルの位置を常に意識しなきゃいけないのがすごくキツい
あこれマッチしないの?ってことが多々あって慣れなんだろうがキツい
デバッグも大変
784532
2020/10/30(金) 22:24:35.54ID:QEBk4Q6j Perl5のParse::RecDescent.を使えれば
Perl6のGrammarも大丈夫だと思う
多分
Perl6のGrammarも大丈夫だと思う
多分
785デフォルトの名無しさん
2020/10/30(金) 22:37:14.50ID:yPjXBzu5786デフォルトの名無しさん
2020/11/02(月) 15:05:38.99ID:iEycKQwb Raku の Grammar というのは、「クラス定義+演算子のオーバーロード」
と比較して、何が優れているのだろうか?
と比較して、何が優れているのだろうか?
787デフォルトの名無しさん
2020/11/02(月) 17:51:29.15ID:ew0mgVfp えっ。
ターゲットというか、適用領域が違うんでは。
ターゲットというか、適用領域が違うんでは。
788デフォルトの名無しさん
2020/11/13(金) 10:25:46.33ID:ZCyQI0Un 処理済みかとか、除外対象か、みたいなチェック用に
%except = (aaa => 1, bbb => 1);
みたいなテーブルを作っておいて、
if (!$except{$x}) { ... }
みたいなことをする
で、=> 1 の部分は何でもいい訳で、これが無駄に見える
@except = (aaa, bbb);
の方が自然だけど、判定部分が複雑になる
なんとか判定をシンプルに書けないものか
%except = (aaa => 1, bbb => 1);
みたいなテーブルを作っておいて、
if (!$except{$x}) { ... }
みたいなことをする
で、=> 1 の部分は何でもいい訳で、これが無駄に見える
@except = (aaa, bbb);
の方が自然だけど、判定部分が複雑になる
なんとか判定をシンプルに書けないものか
789デフォルトの名無しさん
2020/11/13(金) 10:43:18.63ID:IuUtHHuD リストを使用してのケースなら
" @except " =~ / aaa /
とか。
" @except " =~ / aaa /
とか。
790デフォルトの名無しさん
2020/11/13(金) 10:53:46.81ID:IuUtHHuD でもハッシュの方がよくないかなあ。
%except = map { $_, 1 } qw(aaa bbb ...);
とか
undef $except{$_} for qw(aaa bbb ...);
で判定はexists
とか
%except = map { $_, 1 } qw(aaa bbb ...);
とか
undef $except{$_} for qw(aaa bbb ...);
で判定はexists
とか
791デフォルトの名無しさん
2020/11/13(金) 11:34:25.97ID:4qY0TlDt >>788
無駄に見えるのは気のせいなので、気にするな。
何が気に入らないのか、意味不明なレベル。
せいぜいが判定をexists()に変えるくらいか。
でも、処理の意図は明確になっても、記述量は増えてまう。
結局、もとのほうがいい。
無駄に見えるのは気のせいなので、気にするな。
何が気に入らないのか、意味不明なレベル。
せいぜいが判定をexists()に変えるくらいか。
でも、処理の意図は明確になっても、記述量は増えてまう。
結局、もとのほうがいい。
792デフォルトの名無しさん
2020/11/13(金) 11:54:00.35ID:ZCyQI0Un pythonのin演算子を真似た関数を用意するくらいか
793デフォルトの名無しさん
2020/11/13(金) 13:04:35.51ID:f6yctSrL ここの人ってpythonもできるの?
pythonを最近覚えたんだけど、pythonで書き始めてからperlに戻る気がしないw
pythonを最近覚えたんだけど、pythonで書き始めてからperlに戻る気がしないw
794デフォルトの名無しさん
2020/11/13(金) 13:11:47.54ID:ZCyQI0Un 常にuse strictで書いてるような人はpythonの方がいいかも
危険を承知でとにかく楽に、という書き方がpythonはできない
危険を承知でとにかく楽に、という書き方がpythonはできない
795デフォルトの名無しさん
2020/11/13(金) 17:55:04.27ID:IGEbWGrX796デフォルトの名無しさん
2020/11/17(火) 17:45:06.40ID:jAzXruH+ デフォルト以外のブラウザを開くことはできませんか?
デフォはこれでいけてます
use Win32::FileOp qw(ShellExecute);
ShellExecute($url);.
デフォはこれでいけてます
use Win32::FileOp qw(ShellExecute);
ShellExecute($url);.
797デフォルトの名無しさん
2020/11/17(火) 23:05:44.09ID:cjOqkcds 例えば、デフォが他のブラウザで、あるurlをFirefoxPortableで開きたいとき、
次のようなコマンドを実行させているが、これをPerlでやればいいんじゃないの?
"U:/FirefoxPortable/FirefoxPortable.exe" https://foo/bar/
次のようなコマンドを実行させているが、これをPerlでやればいいんじゃないの?
"U:/FirefoxPortable/FirefoxPortable.exe" https://foo/bar/
798デフォルトの名無しさん
2020/11/18(水) 00:40:53.82ID:T6Vtm1bs ありがとう
`C:/Program Files (x86)/Google/Chrome/Application/chrome.exe`
とりあえずここまででchrome開くことはできたのですがURLの指定はできないでしょうか?
`C:/Program Files (x86)/Google/Chrome/Application/chrome.exe`
とりあえずここまででchrome開くことはできたのですがURLの指定はできないでしょうか?
799デフォルトの名無しさん
2020/11/18(水) 01:11:22.59ID:OSmP9Gk2800デフォルトの名無しさん
2020/11/18(水) 01:32:09.00ID:T6Vtm1bs system("\"C:/Program Files (x86)/Google/Chrome/Application/chrome.exe\" https://www.yahoo.co.jp/");
完成しました
ありがとうございました。
完成しました
ありがとうございました。
801デフォルトの名無しさん
2020/11/18(水) 08:31:15.08ID:XTvONPVJ >>800
wperl.exeからsystem()を呼び出すと新しいコンソールウィンドウが開くので要注意。
wperl.exeからsystem()を呼び出すと新しいコンソールウィンドウが開くので要注意。
802デフォルトの名無しさん
2020/11/28(土) 15:40:18.08ID:EM73A4Gg 指定した年月日からx日後の日付を数で得るにはどうするのが一番楽だろう
803デフォルトの名無しさん
2020/11/28(土) 18:31:31.18ID:1bDz9VeK 「数で得る」というのがよく解らないが、timelocal()とlocaltime()を使えば、
多分、やりたいことができると思う。
多分、やりたいことができると思う。
804デフォルトの名無しさん
2020/12/03(木) 17:27:36.92ID:PrWVOzOn これから仕事ではじめてperlを使うんだけど、メッセージやメール出力などにマルチ言語対応が入ってる
resourceに言語ファイルをいれる形で実現したいけど、どのようにするのがいいか教えて下さい
複数のスクリプトを開発して連係させる予定
resourceに言語ファイルをいれる形で実現したいけど、どのようにするのがいいか教えて下さい
複数のスクリプトを開発して連係させる予定
805デフォルトの名無しさん
2020/12/05(土) 13:44:54.28ID:DP7JjxAq ヒアドキュメントの中で数式を使うやり方は?
@{[数式]}
のようにやってもエラーで動かなかった
@{[数式]}
のようにやってもエラーで動かなかった
806デフォルトの名無しさん
2020/12/05(土) 15:34:53.50ID:3OUqO/Qz >>802
Ruby on Rails なら、時刻計算用のライブラリがある
require 'active_support/time'
p Date.new( 2020, 2, 28 ).advance( days: 2 )
出力。うるう年
Sun, 01 Mar 2020
Ruby on Rails なら、時刻計算用のライブラリがある
require 'active_support/time'
p Date.new( 2020, 2, 28 ).advance( days: 2 )
出力。うるう年
Sun, 01 Mar 2020
807デフォルトの名無しさん
2020/12/05(土) 15:43:47.69ID:+/FrBp4K そんな感じの気楽で使いたい
$date = date->new('2020-12-05');
$date += 100;
($y, $m, $d) = ($date->year, $date->month, $date->day);
こんなん
$date = date->new('2020-12-05');
$date += 100;
($y, $m, $d) = ($date->year, $date->month, $date->day);
こんなん
808デフォルトの名無しさん
2020/12/05(土) 16:43:15.39ID:dBHdheKW >>805
おかしいな。それで合ってるように思えるんだが。
この辺りを読んで、何か誤解してないか確認したらいいかも。
https://perldoc.jp/docs/perl/5.26.1/perlref.pod
おかしいな。それで合ってるように思えるんだが。
この辺りを読んで、何か誤解してないか確認したらいいかも。
https://perldoc.jp/docs/perl/5.26.1/perlref.pod
809806
2020/12/05(土) 18:18:59.36ID:3OUqO/Qz 「perl 時刻 計算」で検索すれば?
日付・時刻を扱う標準モジュール、Time::Piece が標準で添付されています。
もっと便利なモジュールを、誰かが作っているかも
日付・時刻を扱う標準モジュール、Time::Piece が標準で添付されています。
もっと便利なモジュールを、誰かが作っているかも
810デフォルトの名無しさん
2020/12/05(土) 18:31:57.30ID:+/FrBp4K localtimeからスタートする時はそれが便利
何か基準の日付から計算しようとすると面倒になる
何か基準の日付から計算しようとすると面倒になる
811デフォルトの名無しさん
2020/12/05(土) 20:29:02.43ID:5ARiBM7n812デフォルトの名無しさん
2020/12/05(土) 23:54:20.43ID:DP7JjxAq813デフォルトの名無しさん
2020/12/06(日) 00:14:01.05ID:GZ1arJtc >>812
だからエラーの文面をはれっつーの。
でも、わかった。
「[]」の内側に書けるのは、式のリスト。
最後に「;」を書くのは、「式」でなく「文」というか。
しかし、それだとうまくいっても「aaawww1」と表示される気がするが、どうなの?w
だからエラーの文面をはれっつーの。
でも、わかった。
「[]」の内側に書けるのは、式のリスト。
最後に「;」を書くのは、「式」でなく「文」というか。
しかし、それだとうまくいっても「aaawww1」と表示される気がするが、どうなの?w
814532
2020/12/06(日) 00:15:36.74ID:1Uj+ZrCS print <<"eos";
@{[print "aaawww"]}
eos
$ perl aaawww.pl
aaawww1
;を省くと動くが、「1」とか余計なものがつくな
@{[print "aaawww"]}
eos
$ perl aaawww.pl
aaawww1
;を省くと動くが、「1」とか余計なものがつくな
815デフォルトの名無しさん
2020/12/06(日) 00:43:41.05ID:Znd8Qdfl >>813
CGI 実行エラー syntax error at test.cgi line 10, near ""aaawww";"
Execution of test.cgi aborted due to compilation errors.
CGI 実行エラー syntax error at test.cgi line 10, near ""aaawww";"
Execution of test.cgi aborted due to compilation errors.
816デフォルトの名無しさん
2020/12/06(日) 01:06:20.00ID:rqNKNacS 単なる構文エラー
無名リストの中に裸のセミコロンがあったらまずいでしょ
["A", "B", 3, ";"] OK
["A", "B", 3, ;] エラー
余計な1じゃなくてprint関数の返り値
printが成功したので真(1)を返して無名リストの要素になった
printで"aaawww"が表示された後デリファレンスされて展開された1がヒアドキュメントで表示される
無名リストの中に裸のセミコロンがあったらまずいでしょ
["A", "B", 3, ";"] OK
["A", "B", 3, ;] エラー
余計な1じゃなくてprint関数の返り値
printが成功したので真(1)を返して無名リストの要素になった
printで"aaawww"が表示された後デリファレンスされて展開された1がヒアドキュメントで表示される
817デフォルトの名無しさん
2020/12/06(日) 01:06:31.00ID:GZ1arJtc818デフォルトの名無しさん
2020/12/06(日) 01:19:08.97ID:d/9HsImJ >>802
今更だけど日付をエポック秒で表して日数×24*60*60を足すんじゃだめ?
車輪の再発明というかただの製作を承知で、自分で日付変換の関数を一通り作ったらそれで十分だった
便利そうなライブラリを探そうとしたこともあるけど、オブジェクト指向的なやつだと結局その
オブジェクトを介した変換が頻出することになってスラスラ書けないなあと思ったのです。
もし今後UTCとかJSTとか出てきたときはそのときまた考える。
今更だけど日付をエポック秒で表して日数×24*60*60を足すんじゃだめ?
車輪の再発明というかただの製作を承知で、自分で日付変換の関数を一通り作ったらそれで十分だった
便利そうなライブラリを探そうとしたこともあるけど、オブジェクト指向的なやつだと結局その
オブジェクトを介した変換が頻出することになってスラスラ書けないなあと思ったのです。
もし今後UTCとかJSTとか出てきたときはそのときまた考える。
819デフォルトの名無しさん
2020/12/06(日) 02:06:04.21ID:fHRDTQ7E PerlのYAML関連のモジュールが全部重くて厳しい
高速なYAMLモジュールはないのか?
高速なYAMLモジュールはないのか?
820デフォルトの名無しさん
2020/12/06(日) 10:37:45.21ID:kLx/M/5Z まずは高速なCのライブラリを見つけます
821デフォルトの名無しさん
2020/12/06(日) 11:42:16.72ID:BlX3SIQO >>803 だが、>>802 の質問は>>803 で終わったと思ったのだが、不親切だった?
例えば2019年12月1日から365日後の日付は、次のようにすれば得られる。
use Time::Local;
$year=2019;$mon=12;$mday=1;$hours=12;$min=0;$sec=0;
$intvl=365;
$basetime = timelocal($sec, $min, $hours, $mday, $mon-1, $year-1900);
$basetime += $intvl*24*60*60;
($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst) =localtime($basetime);
$mon+=1;$year+=1900;
print STDERR "$year.$mon.$mday\n";
例えば2019年12月1日から365日後の日付は、次のようにすれば得られる。
use Time::Local;
$year=2019;$mon=12;$mday=1;$hours=12;$min=0;$sec=0;
$intvl=365;
$basetime = timelocal($sec, $min, $hours, $mday, $mon-1, $year-1900);
$basetime += $intvl*24*60*60;
($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst) =localtime($basetime);
$mon+=1;$year+=1900;
print STDERR "$year.$mon.$mday\n";
822デフォルトの名無しさん (ワッチョイ be3b-cfMa)
2020/12/06(日) 11:58:40.89ID:5Rf1GOX10 見るからに面倒臭い
823デフォルトの名無しさん
2020/12/07(月) 09:18:58.50ID:zfvnE2zk $basetime = timelocal_nocheck($sec, $min, $hours, $mday+$intvl, $mon-1, $year-1900);
824デフォルトの名無しさん
2020/12/07(月) 09:43:24.77ID:UAiCPmDo Time::Piece はよくできてて、何かのログとかに現在時刻を書き出す、
とかの用途には十分に使える
でも、時刻計算や日数計算はあまり考慮されていない
現在時刻からの計算はできても、任意の時刻からだと弱い
とかの用途には十分に使える
でも、時刻計算や日数計算はあまり考慮されていない
現在時刻からの計算はできても、任意の時刻からだと弱い
825デフォルトの名無しさん
2020/12/07(月) 14:03:32.45ID:tC78i6pr >>807
use Time::Piece;
use Time::Seconds;
my $day = Time::Piece->strptime('2020-12-05', '%Y-%m-%d');
$day += ONE_DAY * 100;
print $day->date, "\n";
print $day->year, "\n";
print $day->mon, "\n";
print $day->mday, "\n";
use Time::Piece;
use Time::Seconds;
my $day = Time::Piece->strptime('2020-12-05', '%Y-%m-%d');
$day += ONE_DAY * 100;
print $day->date, "\n";
print $day->year, "\n";
print $day->mon, "\n";
print $day->mday, "\n";
826デフォルトの名無しさん
2020/12/07(月) 14:21:35.27ID:UAiCPmDo まあ、strptime さえ目を瞑れば
こんなもん、何か見ないと書けない
こんなもん、何か見ないと書けない
827デフォルトの名無しさん
2020/12/07(月) 15:40:13.93ID:15jj6qfl use POSIX; を宣言してCの標準関数に似た時刻処理機能を使うのが普通じゃないの?
Cの時刻処理サンプルコードを円滑にPerlに移植できるよ。
Cの時刻処理サンプルコードを円滑にPerlに移植できるよ。
828デフォルトの名無しさん
2020/12/07(月) 17:17:12.82ID:VC6/tHTg829532
2020/12/07(月) 21:57:48.14ID:WG5ppFXF Time::Pieceの弱点は
strptime()で作ったインスタンスのtimeゾーンをいじれないとこかな?
後1つなんか弱手あった気がするが忘れた
strptime()で作ったインスタンスのtimeゾーンをいじれないとこかな?
後1つなんか弱手あった気がするが忘れた
830デフォルトの名無しさん
2020/12/07(月) 22:38:30.88ID:UAiCPmDo strptimeはpythonでもrubyでも同じだから、もう慣れなんだろうな
'YYYY-MM-DD' とかではあかんかったのか
'YYYY-MM-DD' とかではあかんかったのか
831デフォルトの名無しさん
2020/12/08(火) 04:35:26.34ID:65P2yCaW >>821
timeLocal()の年は1900引かない方がいいよ。これちょっとCのライブラリとは違うんだよ。詳しくはドキュメント読んで。
timeLocal()の年は1900引かない方がいいよ。これちょっとCのライブラリとは違うんだよ。詳しくはドキュメント読んで。
832デフォルトの名無しさん
2020/12/08(火) 04:36:34.48ID:65P2yCaW あ。タイプミス。timelocal()ね。
833デフォルトの名無しさん
2020/12/08(火) 23:53:37.62ID:VS4VHEi1 すみません、ソートで教えて欲しいんですが下記のようにみたいな枝番号が付いてる文字列をハッシュのキーとして
ハイフン前の数値でソートした後にハイフン後の数値でソートしたいのですが
普通に$a <=> $bだとハイフンの後の値がバラバラになって上手くいきません
キーを作る際に別々に作ってループ増やすくらいしか自分には解決方法が無いのですが、スマートに出来る方法は無いのでしょうか?
1-1
1-2
2-1
2-2
3-1
ハイフン前の数値でソートした後にハイフン後の数値でソートしたいのですが
普通に$a <=> $bだとハイフンの後の値がバラバラになって上手くいきません
キーを作る際に別々に作ってループ増やすくらいしか自分には解決方法が無いのですが、スマートに出来る方法は無いのでしょうか?
1-1
1-2
2-1
2-2
3-1
834デフォルトの名無しさん
2020/12/09(水) 00:31:36.73ID:LWKBPFtb >>833
シュワルツ変換で検索!
たとえば :
mapでソート用の値として、前の数字×10000+後ろの数字の値をつくって、それともとの値のペアにする。
それを<=>でソートする。
mapで、ソート結果からもとのデータ部分を取り出す。
シュワルツ変換で検索!
たとえば :
mapでソート用の値として、前の数字×10000+後ろの数字の値をつくって、それともとの値のペアにする。
それを<=>でソートする。
mapで、ソート結果からもとのデータ部分を取り出す。
835デフォルトの名無しさん
2020/12/09(水) 00:39:46.90ID:LWKBPFtb 要は、map{...} sort{...} map{...}となる。
変換のためのループが2回入る(map)が、記述としてはあっさりなので、特殊なソートをしたいときにはよく使われる有名な方法。
伝わるかな?w
変換のためのループが2回入る(map)が、記述としてはあっさりなので、特殊なソートをしたいときにはよく使われる有名な方法。
伝わるかな?w
836デフォルトの名無しさん
2020/12/09(水) 08:45:38.11ID:UMU4oc+t それで書けるなら、sort { } でも書けるよね
837デフォルトの名無しさん
2020/12/09(水) 09:35:02.27ID:sn/SI4a+ >>833
こんな感じかな。デバッグはしていないが。
@newlist = sort compare @oldlist;
sub compare{
my ($ap, $bp) = @_;
($ap1, $ap2) = $ap=~/([0-9]+)\-([0-9]+)/;
($bp1, $bp2) = $bp=~/([0-9]+)\-([0-9]+)/;
return 1 if $ap1 > $bp1
return -1 if $ap1 < $bp1
# $ap1 == $bp1;
return 1 if $ap2 > $bp2;
return -1;
}
こんな感じかな。デバッグはしていないが。
@newlist = sort compare @oldlist;
sub compare{
my ($ap, $bp) = @_;
($ap1, $ap2) = $ap=~/([0-9]+)\-([0-9]+)/;
($bp1, $bp2) = $bp=~/([0-9]+)\-([0-9]+)/;
return 1 if $ap1 > $bp1
return -1 if $ap1 < $bp1
# $ap1 == $bp1;
return 1 if $ap2 > $bp2;
return -1;
}
838デフォルトの名無しさん
2020/12/09(水) 10:27:05.71ID:LWKBPFtb839デフォルトの名無しさん
2020/12/09(水) 10:46:35.52ID:zREBomTd sort { s1($a) <=> s1($b) } keys %x;
sub s1 {
shift =~ /(¥d+)-(¥d+)/ && 100*$1+$2
}
sortならこんなかんじ
sub s1 {
shift =~ /(¥d+)-(¥d+)/ && 100*$1+$2
}
sortならこんなかんじ
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 橋下徹氏 外務省幹部の訪中受け「口だけ番長」へ痛烈指摘 「喧嘩は日本の完敗…なんとかっこ悪い日本か」 [冬月記者★]
- 【外国人問題】小野田紀美担当相「不法就労や不法滞在は許さない」 [シャチ★]
- 【野球】井端監督 大谷翔平、山本由伸らのWBCへの参加 「1日も早く返事ほしい」「待っててといっても、国内組が遅くなってしまう」★3 [冬月記者★]
- 経団連会長、日中は建設的対話を 経済3団体が高市首相と初会談も日中関係は話題に登らず… [BFU★]
- 中国で「クレしん」公開延期 対日報復、エンタメに波及 [蚤の市★]
- 東京株式市場 インバウンド関連株が下落 中国政府の渡航自粛要請で [バイト歴50年★]
- 泣ける画像
- 有識者「高市総理が発言を撤回したり、辞職するしかないと言っている人は、それで日中関係が今まで通りになると思ってる?」 [834922174]
- 戦争は無くならないし殺人は起きるし女はレイプされるし子供は餓死するし
- 女性検診なんでオナニーしてグチョグチョで行ってやる
- 日経時間外、5万円割れ 垂直落下始まる [402859164]
- ( ´・ω・` )朝ですぞー
