Perl初心者スレ(マジレス回答) (523レス)
Perl初心者スレ(マジレス回答) http://mevius.5ch.net/test/read.cgi/tech/1349538519/
上
下
前
次
1-
新
通常表示
512バイト分割
レス栞
リロード規制
です。10分ほどで解除するので、
他のブラウザ
へ避難してください。
1: デフォルトの名無しさん [sage] 2012/10/07(日) 00:48:39.00 どうぞー http://mevius.5ch.net/test/read.cgi/tech/1349538519/1
443: 438 [] 2018/10/06(土) 06:21:52.15 ID:J8Y2BFN6 あ、そうか。貯め込む必要はなくてハッシュ作ってそのまんま出せば良いんだよな。 じゃあawkの方が楽ではないか? awk -F, 'BEGIN{OFS=","}{n[$1]++;print $1,n[$1],$3}' s.txt http://mevius.5ch.net/test/read.cgi/tech/1349538519/443
444: デフォルトの名無しさん [sage] 2018/10/06(土) 17:28:12.58 ID:MMGbFZjG 436です。皆様ありがとうございました。 自分では1行ずつ処理することまでしかできず、複数レコードの 1コラム目の比較をすることができませんでした。 おかげさまで体育の日に子供の運動会に行けます! ありがとうございました! http://mevius.5ch.net/test/read.cgi/tech/1349538519/444
445: デフォルトの名無しさん [sage] 2018/11/11(日) 14:10:45.60 ID:eqm/EHYd 上の方のレスにも関連したものがありますが、 ファイルから読み込んだ文字列データにて パターンマッチがヒットしません。 同一文字列を直接コード内に定義すると、ヒットします。 出来ればファイルに切り出したいので、 ご教示いただけますでしょうか。 http://mevius.5ch.net/test/read.cgi/tech/1349538519/445
446: デフォルトの名無しさん [sage] 2018/11/11(日) 14:11:11.73 ID:eqm/EHYd [環境] Activeperl win8.1 or 2016 server perl -v This is perl 5, version 24, subversion 3 (v5.24.3) built for MSWin32-x64-multi-thread [コード utf-8で作成] #res[1]にはcp932のコードの「テスト」を含む文字列が格納されている。 $res[1] = Encode::decode('cp932', $res[1]); #patern.txtはutf-8で「テスト」の文字列が格納されている。 open (FILE, "<:utf8", "patern.txt") or (die "$!"); my $line = <FILE>; close(FILE); #$line = 'テスト';←#を外して直接コードに書くとヒットする。 print encode('cp932', $line);(正常に取得できている。) if ($res[1] =~ /$line/){ print "Hit!"; } else{ print "not Hit"; } ---出力--- >テスト >not Hit http://mevius.5ch.net/test/read.cgi/tech/1349538519/446
447: デフォルトの名無しさん [sage] 2018/11/11(日) 16:14:59.60 ID:56YuZzmp >>446 改行文字の有無? http://mevius.5ch.net/test/read.cgi/tech/1349538519/447
448: デフォルトの名無しさん [sage] 2018/11/11(日) 18:17:18.70 ID:t5AG7sJB たぶんそれだな。$line の中身が "テスト\r\n" または "テスト\n" になってそう。 http://mevius.5ch.net/test/read.cgi/tech/1349538519/448
449: デフォルトの名無しさん [sage] 2018/11/12(月) 00:16:54.10 ID:MtlIUxHY chomp($line); するべき http://mevius.5ch.net/test/read.cgi/tech/1349538519/449
450: デフォルトの名無しさん [] 2018/11/12(月) 07:45:13.53 ID:8fj5l105 遅くなりすみません。 テストファイルには改行を入れていなかったのですが、 chompが必要なのですね。 ファイルからレコードを取得するにはchompが必要と勉強になりました。 ありがとうございました。 http://mevius.5ch.net/test/read.cgi/tech/1349538519/450
451: デフォルトの名無しさん [] 2018/11/12(月) 09:22:08.61 ID:I5PkaEyl >>450 いや、改行は入っていると思うぞ。でなければあのプログラムでは一致する。 http://mevius.5ch.net/test/read.cgi/tech/1349538519/451
452: デフォルトの名無しさん [sage] 2018/11/13(火) 17:15:58.77 ID:WOZg75XW utf-8がボムがついている可能性もあるね http://mevius.5ch.net/test/read.cgi/tech/1349538519/452
453: デフォルトの名無しさん [] 2018/11/13(火) 17:46:33.84 ID:/6RlnNZj ところでUTF-8にBOMってなんか意味あるの? ビッグエンディアンで上のビットから詰め込んで並べている1パターンしかないよね? http://mevius.5ch.net/test/read.cgi/tech/1349538519/453
454: デフォルトの名無しさん [sage] 2018/11/13(火) 18:09:12.36 ID:3HdfrOce >>453 あるよ、BOMがあればUTF-8だと文字コードを 簡単に判定できる つまり、文字化け防止に役立つ みんなBOM付けるようにすれば良かったんだけどな http://mevius.5ch.net/test/read.cgi/tech/1349538519/454
455: デフォルトの名無しさん [] 2018/11/13(火) 19:44:37.81 ID:/6RlnNZj あー。magic用か。 http://mevius.5ch.net/test/read.cgi/tech/1349538519/455
456: デフォルトの名無しさん [sage] 2018/11/14(水) 00:34:48.87 ID:efwoHdbt >>450 ですが、改行が入っていました。 遅くなりすみません。 すみませんでした。確認をしっかりします。 もう一つ質問があるのですが、>>450の環境にて、パターンマッチングを、全角、半角、ひらがな、カタカナ、大文字、小文字を区別することなく行いたいのですが、方法をご教示いただけますでしょうか。 http://mevius.5ch.net/test/read.cgi/tech/1349538519/456
457: デフォルトの名無しさん [] 2018/11/14(水) 09:45:09.68 ID:bDqFuzUS >>456 手順としてはまず比較に都合のいいように比較する側とされる側の文字列を正規化する。 例えば半角は全て全角にし、濁点や半濁点はそれを含んだ文字にし、英小文字は大文字にする。 それから比較を行う。 ただし使われている文字がASCIIの文字だけならば // のオプションで i が使えるので正規化不要。 http://mevius.5ch.net/test/read.cgi/tech/1349538519/457
458: デフォルトの名無しさん [sage] 2018/11/14(水) 12:24:46.73 ID:XfG22Q3S 教えて下さい。 my @str4=['a','b','c','d','e']; my $ref4=\@str4; print $str4[0][1],"\n"; # b print @{ $str4[0] },"\n"; # abcde ref4を使って同様に b と abcde を表示するには、どうしたらいいですか? http://mevius.5ch.net/test/read.cgi/tech/1349538519/458
459: デフォルトの名無しさん [sage] 2018/11/14(水) 12:38:11.11 ID:XfG22Q3S うっかり自己解決しました。数時間悩んだのに。 print @{ ${ $ref4 }[0] }; print @{ ${ $ref4 }[0] }[1]; http://mevius.5ch.net/test/read.cgi/tech/1349538519/459
460: デフォルトの名無しさん [sage] 2018/11/14(水) 19:36:24.69 ID:dXHPcciK >>457 オプションで可能であればと思ったのですが、マッチング文字列と対象を同じ文字種にしないといけないんですね。 ActivePerlでUnicode::Japanese でUTF8から変換して書いてみたのですが、cp932にencodeすると、化けてしまい、使用できませんでした。 ActivePerlで使用可能なモジュールあればコードではなくてかまいませんので、何かあれば紹介してもらえますでしょうか。 http://mevius.5ch.net/test/read.cgi/tech/1349538519/460
461: デフォルトの名無しさん [] 2018/11/14(水) 20:41:47.52 ID:bryEJhFF UNICODEにはcomposed、decomposedというややこしいものもあるんだよね。 https://pointoht.ti-da.net/e8205606.html Unicode::Normalizeってのがあるけど、日本語を特別扱いしてくれたりはしなさそうな予感。 http://mevius.5ch.net/test/read.cgi/tech/1349538519/461
462: デフォルトの名無しさん [sage] 2018/11/14(水) 22:57:23.73 ID:otO/yyOk >>453-455 Linux では、BOM なしUTF-8 を使う、アプリ開発者が多く、 BOMありにするとバグるアプリがあるから、BOMなしを使っているけど、 そうすると、Windows では、sjis と区別がつかなくなり、 Explorer での文字列検索ができなくなる だから、Windows10 で、WSL, Ubuntu を導入して、grep を使っている http://mevius.5ch.net/test/read.cgi/tech/1349538519/462
463: 462 [sage] 2018/11/14(水) 23:51:54.30 ID:otO/yyOk 結合文字列をUnicode正規化で合成する方法の危険性 https://qiita.com/monokano/items/d4c37d9bc9833eaeda6e 濁点・半濁点を別の1文字として扱う、結合文字列はMac だけだから、Mac を使わないなら関係ない Unicode正規化は、日中韓で、別の漢字に変換されるものがあるから使えない Ruby では、sjis・UTF-8 の変換は、ファイル読み書き時に指定できる。 CRLF・LF の改行コードの違いは、意識したことがない。 chomp とか、どちらの改行コードでも、正常に動く http://mevius.5ch.net/test/read.cgi/tech/1349538519/463
464: 462 [sage] 2018/11/15(木) 00:11:38.19 ID:g74yzjtM 【 nkf 】コマンド――文字コードと改行コードを変換する http://www.atmarkit.co.jp/ait/articles/1609/29/news016.html これで全角・半角の変換もできる Perl にも、モジュールもあるのでは? http://mevius.5ch.net/test/read.cgi/tech/1349538519/464
465: デフォルトの名無しさん [sage] 2018/11/21(水) 22:55:48.65 ID:M0TZNmLm >>464 有料ですがnkfのActivePerl用をnamazuというところから購入しましたが、 nkfで変換後、utf8でマッチングが不可能で調査中です。 http://mevius.5ch.net/test/read.cgi/tech/1349538519/465
466: デフォルトの名無しさん [sage] 2018/11/21(水) 23:00:44.11 ID:M0TZNmLm ハッシュを要素に持つハッシュへのアクセスについて ご教示いただけますでしょうか。 下記のコードで、読込は正常に完了しますが、出力が不可能です。 $$を使用したり、試しましたがギブアップです。 #hash.txtの中身(タブ区切り) #1 10 テスト1 #2 5 テスト2 use Encode; use utf8; my %table; my %rec; open (FILE, "<:utf8", "hash.txt") or (die "$!"); while(my $line = <FILE>){ chomp($line); @d = split(/\t/, $line); %rec = ('id' => $d[0], 'count' => $d[1], 'name' => $d[2]); $table{$d[0]} = \%rec; print encode('cp932', $table{$d[0]}{'id'})."\t". encode('cp932', $table{$d[0]}{'count'})."\t".encode('cp932', $table{$d[0]}{'name'})."\n"; } close(FILE); print Encode::encode('cp932', "読込完了\n"); foreach my $row (@$wrote_num){ #出力不可能 print encode('cp932', $row{'id'})."\t". encode('cp932', $row{'count'})."\t".encode('cp932', $row{'name'})."\n"; } print Encode::encode('cp932', "$出力完了\n"); http://mevius.5ch.net/test/read.cgi/tech/1349538519/466
467: デフォルトの名無しさん [sage] 2018/11/22(木) 00:04:25.39 ID:V9xGGA7p wrote_numが何か分からんけど my %rec; はwhile内にしたらどうですか あと、$rowはハッシュのリファレンスだろうから$row->{'id'}では http://mevius.5ch.net/test/read.cgi/tech/1349538519/467
468: デフォルトの名無しさん [sage] 2018/11/22(木) 10:12:03.32 ID:iCX1SQ90 >>467 すみません、レス用に書き換えた元がwote_numでした 下記の様に変えましたが、アクセスできません。 意外と難しいですね。 use Encode; use utf8; my %table; open (FILE, "<:utf8", "hash.txt") or (die "$!"); while(my $line = <FILE>){ chomp($line); @d = split(/\t/, $line); my %rec = ('id' => $d[0], 'count' => $d[1], 'name' => $d[2]); $table{$d[0]} = \%rec; print encode('cp932', $table{$d[0]}{'id'})."\t". encode('cp932', $table{$d[0]}{'count'})."\t".encode('cp932', $table{$d[0]}{'name'})."\n"; } close(FILE); print Encode::encode('cp932', "読込完了\n"); foreach my $row (@$table){ print encode('cp932', $row->{'id'})."\t". encode('cp932', $row->{'count'})."\t".encode('cp932', $row->{'name'})."\n"; } print Encode::encode('cp932', "$出力完了\n"); 実行結果:まだアクセスできません >hash_test.pl 1 10 テスト1 2 5 テスト2 読込完了 出力完了 http://mevius.5ch.net/test/read.cgi/tech/1349538519/468
469: デフォルトの名無しさん [sage] 2018/11/22(木) 10:30:19.76 ID:Enb78Zev これでいけると思いましたが、玉砕でしたw foreach my $row (@$table){ while (my ($id, $count, $name) = each(%row)){ print encode('cp932', "$id\t$count\t$name\n"); } http://mevius.5ch.net/test/read.cgi/tech/1349538519/469
470: デフォルトの名無しさん [sage] 2018/11/22(木) 10:54:51.08 ID:iCX1SQ90 これでいけました! foreach my $row (keys %table){ print encode('cp932', "$table{$row}{'id'}\t$table{$row}{'count'}\t$table{$row}{'name'}\n"); } >hash_test.pl 1 10 テスト1 2 5 テスト2 読込完了 1 10 テスト1 2 5 テスト2 出力完了 ただ、key を外して foreach my $row (%table)とすると下記の通り改行が入ります 1 10 テスト1 2 5 テスト2 出力完了 http://mevius.5ch.net/test/read.cgi/tech/1349538519/470
471: デフォルトの名無しさん [sage] 2018/11/22(木) 11:07:56.03 ID:Enb78Zev これで全てのハッシュ要素を出力できますが、 カラム順が不確定になってしまいますね。 ハッシュなので仕方ないことですかね。 foreach $row (sort keys %table) { foreach $col (sort keys %{$table{$row}}) { print encode('cp932', "$table{$row}{$col}\t"); } print "\n"; } >hash_test.pl 1 10 テスト1 2 5 テスト2 読込完了 5 2 テスト2 10 1 テスト1 出力完了 http://mevius.5ch.net/test/read.cgi/tech/1349538519/471
472: デフォルトの名無しさん [] 2018/11/22(木) 12:53:27.47 ID:+z2Jd1go >>471 キーだけ別の配列に取っといてそれ使えば? http://mevius.5ch.net/test/read.cgi/tech/1349538519/472
473: デフォルトの名無しさん [sage] 2018/11/25(日) 19:58:05.78 ID:Ngr2zrFy >>472 できれば要素をカラム名でアクセスしたいのでハッシュの方がいいのですが、カラム順固定出力は配列しかないということですね。 http://mevius.5ch.net/test/read.cgi/tech/1349538519/473
474: デフォルトの名無しさん [sage] 2018/11/25(日) 21:54:59.45 ID:CqrOufwt 両方使えば良いのでは たまにやるよ http://mevius.5ch.net/test/read.cgi/tech/1349538519/474
475: デフォルトの名無しさん [sage] 2018/11/26(月) 04:07:41.06 ID:LFi/GsCA >>471 foreach $col (sort keys %{$table{$row}}) { を foreach $col (qw/id count name/) { とかでは? keyの名前も順番も分かってるんだし。 http://mevius.5ch.net/test/read.cgi/tech/1349538519/475
476: デフォルトの名無しさん [sage] 2019/06/24(月) 04:43:33.88 ID:4+LiJo6+ 自分が昔質問したことにたいして今なら回答できる <> は <STDIN> の単なる略ではなく @ARGV が捕れない副作用があった そこに詰まっていた #!/usr/bin/env perl use 5.010; if (-p STDIN) { print "May be pipe is used. I've got STDIN as below\n"; # my @lines = <STDIN>; # when <> used, perl think no @ARGV map {state $i; ++$i;print "$i $_" } <STDIN>; } else { print "This may be just single running.\n"; } map {state $i; ++$i; print "$i argment found ==> $_\n"} @ARGV; http://mevius.5ch.net/test/read.cgi/tech/1349538519/476
477: デフォルトの名無しさん [sage] 2019/08/29(木) 20:58:11.72 ID:72vdfcsY タグを除去したいのですが、<>も文に入っているため <.*?>ではなく<("[^"]*"|'[^']*'|[^'">])*>を使いたいのですが perl -pe '<("[^"]*"|'[^']*'|[^'">])*>' にする場合どれどれをエスケープすればよいでしょうか? ’だけだと動きませんでした。 perl -pe '<("[^"]*"|\'[^\']*\'|[^'">])*>' http://mevius.5ch.net/test/read.cgi/tech/1349538519/477
478: デフォルトの名無しさん [] 2019/08/30(金) 12:09:22.02 ID:VkI78Ia/ 除去?だったらs/パターン//gみたいにやらないと何も変わらないのでは? てか、それエラーにならないの? http://mevius.5ch.net/test/read.cgi/tech/1349538519/478
479: デフォルトの名無しさん [sage] 2019/08/30(金) 13:51:46.18 ID:XCxRWcZV 5chの書き込みのほう、つけ忘れてました perl -pe 's/<("[^"]*"|'[^']*'|[^'">])*>//g' です perl -pe 's/<.*?>//g'は動くんですけど perl -pe '<("[^"]*"|\'[^\']*\'|[^'">])*>'だと動かないんですよね http://mevius.5ch.net/test/read.cgi/tech/1349538519/479
480: デフォルトの名無しさん [sage] 2019/08/30(金) 13:52:36.95 ID:XCxRWcZV またやっちゃった perl -pe 's/<("[^"]*"|\'[^\']*\'|[^'">])*>//g' http://mevius.5ch.net/test/read.cgi/tech/1349538519/480
481: デフォルトの名無しさん [sage] 2019/08/30(金) 17:21:58.25 ID:8Dc5lx9D こうか? perl -pe 's/<("[^"]*"|'"'"'[^'"'"']*'"'"'|[^'"'"'">])*>//g' perlというよりシェルのシングルクォートの問題 http://mevius.5ch.net/test/read.cgi/tech/1349538519/481
482: デフォルトの名無しさん [sage] 2019/08/30(金) 17:42:16.91 ID:fIMZQtfT そこまでするくらいなら HTML::Parser を使う方がいいと思うよ。 http://mevius.5ch.net/test/read.cgi/tech/1349538519/482
483: デフォルトの名無しさん [sage] 2019/08/30(金) 17:56:41.24 ID:XCxRWcZV >481 できました!、ありがとうございます。 'を'""'で括るのですね なんで\でエスケープにならないんでしょうね http://mevius.5ch.net/test/read.cgi/tech/1349538519/483
484: デフォルトの名無しさん [sage] 2019/08/30(金) 18:04:26.61 ID:XCxRWcZV パーサーも一度使ってみたんですが <p>hoge</p><p>hoge</p> pタグが一行に2つあると誤作動したりするんですよね http://mevius.5ch.net/test/read.cgi/tech/1349538519/484
485: デフォルトの名無しさん [sage] 2019/08/30(金) 23:22:18.80 ID:fIMZQtfT その誤作動がパーサーのせいかどうかは判らないが、少なくとも HTML::Parser でそんなことは起こらないから安心してほしい。 たとえばテキスト部分だけを出力したいならこんな感じでできる。 my $parser = HTML::Parser->new( text_h => [sub { print( $_[0]) },'text'], ); $parser->parse_file( \*STDIN); http://mevius.5ch.net/test/read.cgi/tech/1349538519/485
486: デフォルトの名無しさん [sage] 2019/08/31(土) 00:18:32.04 ID:mx6W2BK8 >485 参考になります。 パーサーもいろいろ種類あるみたいですね。 自分の使ってたのはhtml-xml-utilsというやつでした。 http://mevius.5ch.net/test/read.cgi/tech/1349538519/486
487: デフォルトの名無しさん [sage] 2021/04/21(水) 00:35:38.31 ID:J2c8I4ei @aに0を100ケ追加するには、pushをforで100回回す以外の方法ありますか http://mevius.5ch.net/test/read.cgi/tech/1349538519/487
488: デフォルトの名無しさん [sage] 2021/04/21(水) 03:07:59.27 ID:aE0oGLsa push(@a, (0) x 100); http://mevius.5ch.net/test/read.cgi/tech/1349538519/488
489: デフォルトの名無しさん [sage] 2021/04/27(火) 18:16:47.03 ID:OX0aAdkQ >>488 ありがとうございました 俺が遅くなりまして申し訳ありません http://mevius.5ch.net/test/read.cgi/tech/1349538519/489
490: デフォルトの名無しさん [] 2021/11/19(金) 22:27:21.73 ID:v67hT9Zk 二つ以上の空白文字列を 一つの空白に変えたいのですが うまくいきません。 if($line=~/\s\s+/){ $line=~s/\s\s+/\s/g print("$line\n") } http://mevius.5ch.net/test/read.cgi/tech/1349538519/490
491: デフォルトの名無しさん [sage] 2021/11/20(土) 02:07:02.21 ID:h6kzSIM/ $line=~s/¥s¥s+/ /g では? http://mevius.5ch.net/test/read.cgi/tech/1349538519/491
492: デフォルトの名無しさん [sage] 2021/11/20(土) 20:14:01.04 ID:xbsxU5SW s/\s\s+/ /g; でうまくいったよ。 そうか、\sって正規表現だから、置換文字列に使うと「perl にそんな定義ないで!」ってなるのか。 これは俺も気を付けよう。 http://mevius.5ch.net/test/read.cgi/tech/1349538519/492
493: デフォルトの名無しさん [sage] 2021/11/20(土) 20:36:42.09 ID:xbsxU5SW 置換といえばこのまえ、JSONで取得したUnicodeを表示したくて、 \u3042 → \N{U+3042} に置換しようとしたけど、できなかった。 \N{U+ }←ここにはリテラルしか書けないのかな。 http://mevius.5ch.net/test/read.cgi/tech/1349538519/493
494: デフォルトの名無しさん [] 2021/12/14(火) 19:15:14.22 ID:LP8Fmqr9 if文で真偽値を判定するのってどうやるの? hoge() or die("Error\n"); ってなってた(hoge()の戻り値が魏ならエラー)のを標準出力したくて my $a = hoge(); if( ! $a ){ print("Error\n"); exit $!; } みたいにしたんだけど、if文の書き方ってこんなんで良いの? http://mevius.5ch.net/test/read.cgi/tech/1349538519/494
495: デフォルトの名無しさん [sage] 2021/12/25(土) 19:09:39.02 ID:pJ3Bii8w >>494 0を返しても、0という文字(アスキーコード0x30)として扱われたりするから、俺は if(scalar($a)) { とか if($a eq 0) { とかするよ。 http://mevius.5ch.net/test/read.cgi/tech/1349538519/495
496: デフォルトの名無しさん [sage] 2021/12/25(土) 20:31:09.16 ID:62MjaTIU >>494 良い。 ! で条件反転させるんだったら unless 使っても良いと思うけどね。 unless ($a) { ... } みたいに。 http://mevius.5ch.net/test/read.cgi/tech/1349538519/496
497: デフォルトの名無しさん [sage] 2021/12/30(木) 05:41:55.25 ID:grPlj9k3 良くないんだってば。 Perlをそういう流儀でやってるといつか痛い目にあうよ。 http://mevius.5ch.net/test/read.cgi/tech/1349538519/497
498: 494ではない [sage] 2021/12/30(木) 08:07:22.12 ID:j5bdR14I >>495 マジか。 my $a = hoge(); において、左辺が 0、右辺が 0x30 になるのは、言語としてぶっ壊れているんじゃね? http://mevius.5ch.net/test/read.cgi/tech/1349538519/498
499: デフォルトの名無しさん [sage] 2021/12/30(木) 17:49:56.83 ID:QArx8wCq そういう言語なの 0 but true なんていう値もあるし http://mevius.5ch.net/test/read.cgi/tech/1349538519/499
500: デフォルトの名無しさん [sage] 2022/01/10(月) 19:33:13.97 ID:2hS04FMw do what perl mean http://mevius.5ch.net/test/read.cgi/tech/1349538519/500
501: デフォルトの名無しさん [sage] 2022/01/11(火) 00:17:50.61 ID:Xf79Fgui bool値ほしい http://mevius.5ch.net/test/read.cgi/tech/1349538519/501
502: デフォルトの名無しさん [] 2022/03/27(日) 23:43:39.11 ID:TRkpHzjA >>497 じゃあどうすればいいの? http://mevius.5ch.net/test/read.cgi/tech/1349538519/502
503: デフォルトの名無しさん [sage] 2022/04/28(木) 20:33:01.74 ID:KupWcmJ5 元の hoge() or die("Error\n"); が問題なく動いてるなら hoge() or print("Error\n"), die $!; http://mevius.5ch.net/test/read.cgi/tech/1349538519/503
504: デフォルトの名無しさん [sage] 2022/06/11(土) 13:31:52.57 ID:XcUjU1KU hoge()が0を返しうるかどうかもわからんと思うのだが >元の >hoge() or die("Error\n"); >が問題なく動いてるなら という前提の下で >>495 の配慮に意味があるの? >>496 で十分 hoge() or が動くという前提を無視するとして もしもhoge()が0を含む数値か失敗を返すなら(空文字を含む文字列か失敗でもいい) 失敗にundefを返してdefinedで受けるのがフツー http://mevius.5ch.net/test/read.cgi/tech/1349538519/504
505: デフォルトの名無しさん [sage] 2023/12/15(金) 06:59:42.19 ID:aRdlBUAD $_ ← これ、なんて読む? perlが発祥ってわけでもないそうだが(bashとかにもあるんだってね)、ガチのドザなので 俺は内心ドルバーって呼んでる http://mevius.5ch.net/test/read.cgi/tech/1349538519/505
506: デフォルトの名無しさん [sage] 2023/12/19(火) 00:32:16.33 ID:LgO8Ui43 ドル・アンダーバーじゃないかな。 設定によってはチルダの代わりにトップバーってのがあったから、それと区別するのにアンダーって言ってた気がする。 http://mevius.5ch.net/test/read.cgi/tech/1349538519/506
507: 505 [sage] 2023/12/21(木) 12:15:47.33 ID:nsa/DjJa おつあり そういやそんなの(トップバー)あったねえ なるほど http://mevius.5ch.net/test/read.cgi/tech/1349538519/507
508: デフォルトの名無しさん [] 2024/02/09(金) 17:07:48.28 ID:LEmbefGZ V5.38.2 32ビット https://github.com/StrawberryPerl/Perl-Dist-Strawberry/releases/tag/SP_5382_32bit 64ビット https://github.com/StrawberryPerl/Perl-Dist-Strawberry/releases/tag/SP_53822_64bit http://mevius.5ch.net/test/read.cgi/tech/1349538519/508
509: デフォルトの名無しさん [sage] 2024/03/03(日) 23:39:10.39 ID:1cRqRnnX なつかしのcgiゲームを設置したくてperlを触ってるのですが、今の時代でもcgiゲームはサーバーへの負荷は大きいのでしょうか?(昔はよくゲームの設置が禁止されてましたが) perlと関係なかったらすみません… http://mevius.5ch.net/test/read.cgi/tech/1349538519/509
510: デフォルトの名無しさん [sage] 2024/03/16(土) 03:41:28.53 ID:I49Gallj StrawberryPerlで $str='あ'; if ($str =~ /^[あいう]$/) {print("match\n");} を実行してみるとマッチしてくれません /^(あ|い|う)$/ ならマッチするのですが 古いPerl4のjperlなら /^[あいう]$/ でもマッチします やはりこれはStrawberryPerlのバグ(または仕様)なのでしょうか http://mevius.5ch.net/test/read.cgi/tech/1349538519/510
511: デフォルトの名無しさん [sage] 2024/03/16(土) 08:42:58.43 ID:E8XsMGej print length $str; を入れてみたらわかる http://mevius.5ch.net/test/read.cgi/tech/1349538519/511
512: デフォルトの名無しさん [sage] 2024/03/16(土) 09:03:33.98 ID:E8XsMGej もしかして: \p{sc=Hiragana} http://mevius.5ch.net/test/read.cgi/tech/1349538519/512
513: デフォルトの名無しさん [sage] 2024/03/16(土) 09:16:48.08 ID:1WMRgWrv ネタにマジレス http://mevius.5ch.net/test/read.cgi/tech/1349538519/513
514: デフォルトの名無しさん [sage] 2024/03/16(土) 11:57:07.41 ID:Xoe9pkvE >>511 レスどうもです Shift-JISの環境で正しく2とカウントされてます 前記はあくまで例ですので全角文字なら他の文字でもこうなるみたいで ひらがなにマッチさせたいわけではないんです http://mevius.5ch.net/test/read.cgi/tech/1349538519/514
515: デフォルトの名無しさん [sage] 2024/03/16(土) 15:20:26.94 ID:e8kHlvhU 少なくともperl5.8以降の文字クラスはuse utf8;前提になっててlengthが1じゃないとだめじゃね? http://mevius.5ch.net/test/read.cgi/tech/1349538519/515
516: デフォルトの名無しさん [sage] 2024/03/16(土) 15:27:36.56 ID:HqlfXJdH 推奨されてないけど use encoding 'sjis' ならsjisでコード書けたと思う jperlナツカシス http://mevius.5ch.net/test/read.cgi/tech/1349538519/516
517: デフォルトの名無しさん [sage] 2024/03/24(日) 16:38:15.53 ID:gHSiAGjm Windows では Filter::Encoding いれて使ってた スクリプトは utf-8 で書いて use utf8 してたけど コマンドラインでは -MFilter::Encoding=cp932 とか http://mevius.5ch.net/test/read.cgi/tech/1349538519/517
518: デフォルトの名無しさん [] 2024/07/23(火) 22:33:05.15 ID:Ott+kcdk https://github.com/StrawberryPerl/Perl-Dist-Strawberry/releases/tag/SP_5.39.10 Strawberry Perl 5.39.10.1 http://mevius.5ch.net/test/read.cgi/tech/1349538519/518
519: デフォルトの名無しさん [] 2024/07/23(火) 22:33:17.30 ID:Ott+kcdk https://github.com/StrawberryPerl/Perl-Dist-Strawberry/releases/tag/dev_5.40.0_RC1_UCRT 5.40.0.1-RC1 http://mevius.5ch.net/test/read.cgi/tech/1349538519/519
520: デフォルトの名無しさん [] 2025/04/07(月) 15:52:26.28 ID:ahUtunTX perlを使った応募フォームで同一人物からの応募を省きたいのですが、IPアドレス以外で応募者を識別する方法はありますか? 個人サイトの小さな応募フォームなので完璧でなくても大丈夫です お知恵を貸していただけると助かります http://mevius.5ch.net/test/read.cgi/tech/1349538519/520
521: デフォルトの名無しさん [sage] 2025/04/07(月) 17:32:14.55 ID:aZeLbslJ cookie はどうよ? http://mevius.5ch.net/test/read.cgi/tech/1349538519/521
522: デフォルトの名無しさん [] 2025/04/07(月) 19:10:26.23 ID:LICdw+AC むしろIPでは個人識別無理 http://mevius.5ch.net/test/read.cgi/tech/1349538519/522
523: デフォルトの名無しさん [] 2025/04/09(水) 23:14:04.55 ID:X4PDIxY1 >>521 ありがとうございます、調べてみますm(_ _)m >>522 変な書き方をしてしまいました 今はIPアドレスで省いてるのですが、おっしゃる通り識別できないので他の方法を探してました http://mevius.5ch.net/test/read.cgi/tech/1349538519/523
メモ帳
(0/65535文字)
上
下
前
次
1-
新
書
関
写
板
覧
索
設
栞
歴
スレ情報
赤レス抽出
画像レス抽出
歴の未読スレ
AAサムネイル
Google検索
Wikipedia
ぬこの手
ぬこTOP
0.010s