Perl初心者スレ(マジレス回答) (523レス)
1-

312: 2014/08/06(水)23:05 ID:itqhygIz(3/3) AAS
>>311
なら、どっちかの文字コードにencodeして合わせる
313: 2014/08/06(水)23:07 ID:E5F7+XJp(3/3) AAS
いや、よほど特別な事情がない限りは utf-8 のソースにするべき。
外部リンク:d.hatena.ne.jp
この辺読んで理解するべき。
314
(1): 2014/08/18(月)11:10 ID:Umc6CSTk(1) AAS
> perl -e "print (5+5)/3"
10

なんで?
315: 2014/08/18(月)19:48 ID:3b1Nz6uJ(1) AAS
print -e "print((5+5)/3)"
316: 2014/08/19(火)07:25 ID:o0wKf1/G(1) AAS
>>314
外部リンク[pod]:perldoc.jp
> 括弧を使うときには、単純な、(しかし、ときには驚く結果となる規則が 適用できます:
> 関数に見えるならば、それは関数で、優先順位は関係ありません。
(略)
> Perl に -w スイッチを付けて実行すれば、こういったものには警告を 出してくれます。
317: 2014/08/19(火)20:11 ID:pX43W7dG(1) AAS
2000年には既にwarnings実装してんのに
なんで未だに、-w推薦文章なんか残してんだろーね?
-Mwarningsのエイリアスって訳でもねーし。
318
(1): 2014/09/02(火)01:23 ID:ytxIDh0v(1) AAS
【誤】print -e "print ((5+5)/3)"
【正】perl -e "(print(5+5)) / 3"
ついでに -w と -Mwarnings は別物。-Mwarnings で -w の代わりになるわけではない。
319: 2014/09/02(火)02:10 ID:EB7tqG6E(1) AAS
だが共に生きることはできる
320: 2014/09/02(火)04:04 ID:smXsHdMQ(1) AAS
>>318
-w ≠ warningsは常識だろ。

で、「use Unicodeは、use Jcodeの代りじゃない」ってレベルの事を言ってるぞ、おまえさん。
-wが石頭だから、より制御しうるwarningsを実装したんだろが。
321: 2014/09/02(火)07:00 ID:DO1XeoYm(1) AAS
5.20のperllexwarnがスッキリしててワラタ。
322: 2014/10/02(木)21:11 ID:5+m7m9lZ(1) AAS
常識の根拠は常識は常識だから(真顔)
323: 2014/11/05(水)08:46 ID:aEzkt3Do(1/3) AAS
再帰中に再帰の深さを出したいんだけどlocal使っていい?
local $::count = $::count + 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行に短くなりませんか?
1-
あと 182 レスあります
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ

ぬこの手 ぬこTOP 0.011s