Perl初心者スレ(マジレス回答) (523レス)
上下前次1-新
324: 2014/11/05(水)11:35 ID:+yDKEom1(1) AAS
引数で渡す
sub foo {
my ($arg, $count) = @_;
...;
foo($arg, $count) if $count++ < 10;
}
325: 2014/11/05(水)14:22 ID:aEzkt3Do(2/3) AAS
ありがとーーー。
複製される変数の数には変わりがないよね、たぶん。
上はグローバル変数と言うのが気に入らなくて、下は引数で扱う値が増えるのが気に入らないが。
326: 2014/11/05(水)16:45 ID:aEzkt3Do(3/3) AAS
while(@all){ ((shift @all) eq 'cut') and last; }
whileを修飾子として書くと落ちるんだが誰か理由を教えてくれー
((shift @all) eq 'cut') and last while(@all);
evalでも落ちた
327(1): 2014/11/11(火)22:49 ID:AzojYpxL(1) AAS
英数混じった文字列の中から2桁の数字にマッチさせたいのですが、
/\d\d/だと3桁以上の数字の前2桁にもマッチしてしまいます。
/^(\d\d)\D|\D(\d\d)\D|\D(\d\d)$|^(\d\d)$/ こんなことするより簡単な方法ないでしょうか?
328: 2014/11/12(水)00:09 ID:WHJDipVn(1) AAS
[^\d]\d{2}[^\d]
329: 2014/11/12(水)02:38 ID:T/b7ogJF(1) AAS
% perl -le 'print q{22} =~ /[^\d]\d{2}[^\d]/'
% perl -le 'print q{22} =~ /(?<!\d)\d{2}(?!\d)/'
1
% perl -le 'print q{22} =~ /(?:^|\D)\d{2}(?:$|\D)/'
1
330: 327 2014/11/12(水)22:11 ID:obciIUzc(1) AAS
/(?<!\d)\d{2}(?!\d)/
これが期待通りの結果が得られました。
(?<!)とか(?!)とかこれまで使ったこと無かったので勉強になりました。
ありがとうございました。
331: 2014/11/13(木)00:03 ID:w30Rb1CY(1) AAS
テストパターンに英字が入ってませんぜ
332(1): 2014/11/13(木)05:25 ID:iJHzIgO3(1) AAS
\b使えよ。便利だぞ。
333: 2014/11/13(木)05:51 ID:DTTQy1M/(1) AAS
そりゃ\b使って期待通りの結果が出るなら使うだろ
334(2): 2014/11/13(木)23:58 ID:bKuFahzS(1) AAS
以下のような日付が下から上に並んでいるoriginal.txtがあるとします。
これを、日付を逆順にしたoutput.txtに整形するプログラムを作りたいです。
Windowsで、Batch fileとPerlで作れたらと考えています。よろしくお願いします。
<original.txt>
########## 20141203 ###########
DNINITIENK
FDKHJKDKKSK
・・・・・
########## 20141202 ###########
TUNINJKDF
NIGHALKDK
・・・・・・
########## 20141201 ###########
ABCDEFGHIJKE
LMNOPQRSTUV
・・・・・
<output.txt>
########## 20141201 ###########
ABCDEFGHIJKE
LMNOPQRSTUV
・・・・・・
########## 20141202 ###########
TUNINJKDF
NIGHALKDK
・・・・・・
########## 20141203 ###########
DNINITIENK
FDKHJKDKKSK
・・・・・・
335: 2014/11/14(金)00:03 ID:cRe1Bhcz(1) AAS
>>332
\bだと英字と数字の境目は単語の区切りにならないみたい。
336(1): 2014/11/14(金)01:18 ID:VOKh6jxm(1) AAS
centosで元から入ってるperlとは別にソースインストールしたperlを別に入れました。
新しくインストールしたperlで以前から入っていたCPANモジュールを使いたい場合、再度入れなおす必要ありますか?
337(1): 2014/11/14(金)02:49 ID:FARMtlO3(1/2) AAS
>>334
perl -Mvars=%h -ane '$a = $F[1] if @F == 3 ; $h{$a} .= $_ }{ print $h{$_} for sort { $a <=> $b } keys %h’ original.txt
>>336
モジュールの共用は避けるべき
338(1): 2014/11/14(金)06:59 ID:Ul+u6aQZ(1) AAS
>>334
use 5.016;
use warnings;
my $boundary = qr/^#+\s+\d+\s+#+\s*$/;
open(my $in, "<", "original.txt") or die;
my @data;
my $chunk = '';
while(<$in>){
if (/$boundary/ and (length($chunk) > 0)){
push @data, $chunk;
$chunk = '';
}
$chunk .= $_;
}
if (length($chunk) > 0){
push @data, $chunk;
}
$in->close;
open(my $out, ">", "output.txt") or die;
$out->print(reverse @data);
$out->close;
339(1): 2014/11/14(金)20:30 ID:FARMtlO3(2/2) AAS
単純に逆にするだけか
perl -00pe '$_ = join q{}, reverse ( split /(?=^#)/m)'
340: 2014/11/16(日)13:54 ID:f46/IGen(1) AAS
>338,337,339
有難うございました。
341: 2015/01/12(月)10:56 ID:av7JsOQD(1) AAS
my $initial_title_ = "\$" . "$initial_threads" . "_begin";
$initial_title_ = eval $initial_title_;
1行に短くなりませんか?
342(1): 2015/01/13(火)00:30 ID:Dvj6a5BR(1) AAS
my $initial_title_ = eval "\$${initial_threads}_begin";
こういうこと?
343: 2015/01/13(火)02:35 ID:sfvPNi0Q(1) AAS
>>342
ありがとう
eval使うのが3つあったから
6行が3行になったよ
344(1): 2015/01/14(水)23:01 ID:+qvvUh8r(1) AA×
>>1

2chスレ:tech
345: 2015/01/15(木)09:31 ID:+X0UBnJQ(1/2) AAS
>>344
use open ":utf8";
346(1): 2015/01/15(木)09:40 ID:+X0UBnJQ(2/2) AAS
あ、 binmode STDIN , ":utf8": で
347: 2015/01/15(木)13:13 ID:WfzbS03y(1) AAS
binmode STDIN , ":utf8";
binmode STDOUT , ":utf8";
my $seach_word = "日本語" ;
で同様のコマンド叩いて、つまり344が拾えるはずが
何故かヒットしません
348: 2015/01/15(木)18:33 ID:DbiGPAED(1) AAS
<meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS">
349(1): 2015/01/16(金)16:08 ID:6B2q2EkL(1) AAS
w3m -dump -cols 160 2chスレ:tech|nkf -g
UTF-8
UTF-8しか扱わないのにちょっとエンコード回りは複雑だ
350(2): 2015/01/19(月)10:22 ID:AihfgHov(1) AAS
webサイトの表形式データ(横方向は5列、縦方向は不定で100行ぐらい)を取得するのに、
正規表現の繰り返しマッチング
m//g を使って、結果を配列に入れてるんだけど、
もっと簡単に取ってくるモジュールはないでしょうか?
351(1): 2015/01/19(月)21:45 ID:qpn2CGqA(1) AAS
>>350
>webサイトの表形式データ
の形式が分からんとなんとも。
352: 349 2015/01/19(月)22:36 ID:bxHKMq/8(1) AA×
>>346

353(1): 2015/01/20(火)02:00 ID:FcML0ncg(1/2) AAS
>>350 >>351
例えば、こんな表です
外部リンク[htm]:ke.kabupro.jp
今はHTMLのソースを見て、証券コードを正規表現で抽出するために、
=~ m!<tr><th><a\shref[^>]+>(\d{4})<\/a>!ig
などとして配列へ入れているのですが、泥臭いです。
もっとスマートに取得できるモジュールは無いかと思った次第です。
上下前次1-新書関写板覧索設栞歴
あと 170 レスあります
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ
ぬこの手 ぬこTOP 0.032s