Perl初心者スレ(マジレス回答) (523レス)
Perl初心者スレ(マジレス回答) http://mevius.5ch.net/test/read.cgi/tech/1349538519/
上
下
前
次
1-
新
通常表示
512バイト分割
レス栞
347: デフォルトの名無しさん [sage] 2015/01/15(木) 13:13:41.60 ID:WfzbS03y binmode STDIN , ":utf8"; binmode STDOUT , ":utf8"; my $seach_word = "日本語" ; で同様のコマンド叩いて、つまり344が拾えるはずが 何故かヒットしません http://mevius.5ch.net/test/read.cgi/tech/1349538519/347
348: デフォルトの名無しさん [] 2015/01/15(木) 18:33:41.92 ID:DbiGPAED <meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS"> http://mevius.5ch.net/test/read.cgi/tech/1349538519/348
349: デフォルトの名無しさん [sage] 2015/01/16(金) 16:08:36.80 ID:6B2q2EkL w3m -dump -cols 160 http://peace.2ch.net/test/read.cgi/tech/1349538519/|nkf -g UTF-8 UTF-8しか扱わないのにちょっとエンコード回りは複雑だ http://mevius.5ch.net/test/read.cgi/tech/1349538519/349
350: デフォルトの名無しさん [sage] 2015/01/19(月) 10:22:25.36 ID:AihfgHov webサイトの表形式データ(横方向は5列、縦方向は不定で100行ぐらい)を取得するのに、 正規表現の繰り返しマッチング m//g を使って、結果を配列に入れてるんだけど、 もっと簡単に取ってくるモジュールはないでしょうか? http://mevius.5ch.net/test/read.cgi/tech/1349538519/350
351: デフォルトの名無しさん [sage] 2015/01/19(月) 21:45:13.42 ID:qpn2CGqA >>350 >webサイトの表形式データ の形式が分からんとなんとも。 http://mevius.5ch.net/test/read.cgi/tech/1349538519/351
352: 349 [sage] 2015/01/19(月) 22:36:30.03 ID:bxHKMq/8 >>346 ヒント助かった。 use Encode qw/encode decode/; my $enc = 'UTF-8'; sub d($) { decode($enc, shift) } sub e($) { encode($enc, shift) } my $seach_word = "日本語"; my $found_res = 0; my $res = ""; while (<>) { if (/^\d/x) { if ( $found_res == 1 ) { print $res; $found_res = 0; } $res = ""; } else { my $seach_word_ = e$seach_word; if (/$seach_word_/x) { $found_res = 1; } } $res .= $_; } http://mevius.5ch.net/test/read.cgi/tech/1349538519/352
353: デフォルトの名無しさん [sage] 2015/01/20(火) 02:00:35.92 ID:FcML0ncg >>350 >>351 例えば、こんな表です http://ke.kabupro.jp/hist/20150107.htm 今はHTMLのソースを見て、証券コードを正規表現で抽出するために、 =~ m!<tr><th><a\shref[^>]+>(\d{4})<\/a>!ig などとして配列へ入れているのですが、泥臭いです。 もっとスマートに取得できるモジュールは無いかと思った次第です。 http://mevius.5ch.net/test/read.cgi/tech/1349538519/353
354: デフォルトの名無しさん [sage] 2015/01/20(火) 02:06:50.85 ID:FcML0ncg (続き) 例えば統計計算用のRでは readHTMLTableというモジュール(パッケージ?)があり、表形式のデータを含んだurlを指定すれば、簡単に取得出来るのですが。 http://mevius.5ch.net/test/read.cgi/tech/1349538519/354
355: デフォルトの名無しさん [sage] 2015/01/20(火) 07:56:47.13 ID:y2BAlbXr >>353 HTML::TableExtract http://search.cpan.org/~msisk/HTML-TableExtract-2.12/lib/HTML/TableExtract.pm Web::Scraper http://search.cpan.org/~miyagawa/Web-Scraper-0.38/lib/Web/Scraper.pm http://mevius.5ch.net/test/read.cgi/tech/1349538519/355
356: デフォルトの名無しさん [sage] 2015/01/20(火) 12:03:15.85 ID:NiHMzyM4 >>355 ありがとうございます http://mevius.5ch.net/test/read.cgi/tech/1349538519/356
357: デフォルトの名無しさん [sage] 2015/03/13(金) 20:55:35.08 ID:hJWhu2F/ なにこの良スレ http://mevius.5ch.net/test/read.cgi/tech/1349538519/357
358: デフォルトの名無しさん [sage] 2015/03/28(土) 10:06:58.72 ID:spJK+jxH my $tmp = { $a => sub { $_ = 処理A}, $b => sub { $_ = 処理B}, $c => sub { $_ = 処理C}, }; ループ中に↑のように書いている場合、一つの変数に対して複数の処理($a に 処理A' を追加)を 加えたい場合、どのように書くのでしょうか? http://mevius.5ch.net/test/read.cgi/tech/1349538519/358
359: デフォルトの名無しさん [sage] 2015/03/30(月) 16:12:56.05 ID:4W43OXe7 ; http://mevius.5ch.net/test/read.cgi/tech/1349538519/359
360: デフォルトの名無しさん [sage] 2015/04/12(日) 18:06:38.92 ID:eedq/AcT 凄い初歩的な質問だと思うのですが真剣に行き詰まってます 教えてください _HOGE_ こんな表記の変数ってなんて表現するんですか? またネットでこういう変数について調べたいときは、 どのように検索したらヒットしますでしょうか。 Perl __ で検索しても全然それらしい記事が発見できず http://mevius.5ch.net/test/read.cgi/tech/1349538519/360
361: デフォルトの名無しさん [sage] 2015/04/12(日) 18:43:51.80 ID:Xaz/Qvpp _HOGE_は変数じゃないからヒットしないのが正解 もしかして:ヒアドキュメント http://mevius.5ch.net/test/read.cgi/tech/1349538519/361
362: デフォルトの名無しさん [sage] 2015/04/12(日) 20:02:52.86 ID:eedq/AcT なるほど・・・独自のプログラム記述なんでしょうかね・・・ Perlの変数記述方法じゃないことがわかって少し安心しました もう一回解析してきます http://mevius.5ch.net/test/read.cgi/tech/1349538519/362
363: デフォルトの名無しさん [sage] 2015/04/12(日) 20:06:31.76 ID:eedq/AcT >>361さんの回答で先入観が排除され、 意味がわかりました。 $mes =~ s/_HOGE_/$name/g; 文字列に埋め込まれた_HOGE_を別の変数に代入されてる文字列と置換させていました。 ありがとうございました。 http://mevius.5ch.net/test/read.cgi/tech/1349538519/363
364: デフォルトの名無しさん [sage] 2015/04/13(月) 07:38:14.33 ID:bJ3+bESR __END__ とかそんなのの仲間じゃなくて? http://mevius.5ch.net/test/read.cgi/tech/1349538519/364
365: デフォルトの名無しさん [sage] 2015/05/14(木) 07:11:03.21 ID:y4MWBEfC なんでも受け付けるからって、 __HOGE__ をヒアドキュメントとして使ってる人は、単に 特殊リテラルを理解してない人。 質問に超絶遅レスするなら、 __HOGE__は、ほんとうに HOGE と書かれていたなら、 特殊リテラルのまねっこ。 DATA, END などなら、perldoc.jp で perldata から「特殊なリテラル」の項を 参照すること。 http://mevius.5ch.net/test/read.cgi/tech/1349538519/365
366: デフォルトの名無しさん [sage] 2015/05/15(金) 01:58:16.40 ID:3U2TIRvt >>365 どういうこと? http://mevius.5ch.net/test/read.cgi/tech/1349538519/366
367: デフォルトの名無しさん [sage] 2015/05/15(金) 02:39:32.50 ID:PxFVj8Xw ヒアドキュメントのデリミタを print <<die; dieなんてしないよ die ってしたら混乱するでしょ。それと同じレベルで特殊リテラルの 記載に類似(もしくはそのまま)させて使ったら、あかんでしょ。 print <<__END__; dieなんてしないよ __END__ って主旨? http://mevius.5ch.net/test/read.cgi/tech/1349538519/367
368: デフォルトの名無しさん [sage] 2015/05/17(日) 23:46:03.51 ID:wdkXHT83 絶対にありえない単語を区切りにしないと、区切りとしての役目にならんだろが __END__を区切りにしてしまったら、__END__という単語が使えなくなるだろ http://mevius.5ch.net/test/read.cgi/tech/1349538519/368
369: デフォルトの名無しさん [sage] 2015/05/18(月) 00:16:17.74 ID:4BIqDTjB じゃあ __HOGE__ にするわ。絶対ありえん単語だし。 http://mevius.5ch.net/test/read.cgi/tech/1349538519/369
370: デフォルトの名無しさん [sage] 2015/05/18(月) 00:56:57.87 ID:sNwS2iXa >>368 実行してみろよ、動くぞ。 use strict ; use warnings ; while(<DATA>){ print ; } print <<__DATA__; これがヒア __DATA__ __DATA__ 特殊リテラル http://mevius.5ch.net/test/read.cgi/tech/1349538519/370
371: デフォルトの名無しさん [sage] 2015/05/28(木) 16:11:25.87 ID:lXL23oHs ID.パス付きのHPの更新通知プログラムをつくり実行したところ (certificate verify failed)とハマりました。 おそらくSSL関係でつまっています。 簡単に教えてくれる方お願いします。 $mech->get('https://*****'); ↑指摘されたラインです SSLかと思うのですが、SSLについて知識があまりないため、 ダメだった理由をわかりやすく教えていただけませんか? あと、ユーザーIDやパスワードの前にpitgetを書いてあると どうなるのでしょうか? 説明下手でごめんなさい。 http://mevius.5ch.net/test/read.cgi/tech/1349538519/371
372: デフォルトの名無しさん [sage] 2015/06/08(月) 21:35:22.93 ID:fDJEyEgd 特定のディレクトリ(test)からファイルを読み込む処理を 実装しようと思っています。 while(<./test/*>){ #〜ファイル読み込み処理 } はOKなのに $hoge = "./test/*"; while(<$hoge>){ #〜ファイル読み込み処理 } がうまくいかない理由はなぜなのでしょうか? $hogeを可変にしたいのですがどうすればよいでしょうか? 突然の質問で申し訳ありませんが、宜しくお願いします。 http://mevius.5ch.net/test/read.cgi/tech/1349538519/372
373: デフォルトの名無しさん [sage] 2015/06/08(月) 22:51:09.28 ID:tIKF3SUY $hoge = "./test/*"; これは文字だからです。(演算子に対するアドレス(ポインタ)ではありません)。 $hoge = "test"; while(<./$hoge/*>) http://mevius.5ch.net/test/read.cgi/tech/1349538519/373
374: デフォルトの名無しさん [sage] 2015/06/08(月) 23:05:32.65 ID:fDJEyEgd >>373 出来ました!ありがとうございます 今日かなり悩んでいました おかげ様でスッキリしました http://mevius.5ch.net/test/read.cgi/tech/1349538519/374
375: デフォルトの名無しさん [] 2015/08/31(月) 00:47:28.38 ID:xgd4PpfH 下のようにリストのリストを作成したいがcpanか何かで実現できないでしょうか? > (list (list 1 2) (list 3 4)) ((1 2) (3 4)) > (first (list (list 1 2) (list 3 4))) (1 2) > (second (list (list 1 2) (list 3 4))) (3 4) my @car = (1, 2); my @cdr = (3, 4); my @both = (@car, @cdr); print "\@car is @car\n"; # -> @car is 1 2 print "\@cdr is @cdr\n"; # -> @cdr is 3 4 print "\@both is @both\n";# -> @both is 1 2 3 4 printf "%s\n" , $both[0]; # -> 1 printf "%s\n" , $both[1]; # -> 2 printf "%s\n" , $both[2]; # -> 3 printf "%s\n" , $both[3]; # -> 4 http://mevius.5ch.net/test/read.cgi/tech/1349538519/375
376: デフォルトの名無しさん [] 2015/08/31(月) 13:20:01.08 ID:Q0xjlAqa Lisper な人? 多分、こういうことをお望みかな。 #!/usr/bin/perl use Data::Dumper; my @car = (1, 2); my @cdr = (3, 4); my @both = ( \@car, \@cdr); print( Dumper( \@both)); http://mevius.5ch.net/test/read.cgi/tech/1349538519/376
メモ帳
(0/65535文字)
上
下
前
次
1-
新
書
関
写
板
覧
索
設
栞
歴
あと 147 レスあります
スレ情報
赤レス抽出
画像レス抽出
歴の未読スレ
Google検索
Wikipedia
ぬこの手
ぬこTOP
0.009s