Perl 5.12からbytesプラグマがdeprecatedになるようですが,それについての議論をまとめてみました。
Perl 5.12からbytesプラグマがdeprecatedになるようですが,それについての議論をまとめてみました。
1 :以下、名無しにかわりましてVIPがお送りします[]:2010/02/21(日) 23:34:34.07 ID:nXSt4iTKO 唯「良純の眉毛って沢庵みたいだね!」 良純「ちげーよ沢庵じゃねーよ!いてててて! おい引っ張んなよ!引っ張んなって!」 【石原良純のこんなに楽しい気象予報士】 3 :以下、名無しにかわりましてVIPがお送りします[]:2010/02/21(日) 23:39:50.25 ID:sTElonGLO 絡まれやすい奴だなw 4 :以下、名無しにかわりましてVIPがお送りします[]:2010/02/21(日) 23:39:59.70 ID:aQNgpUPf0 良純ネタは好き 7 :以下、名無しにかわりましてVIPがお送りします[]:2010/02/21(日) 23:43:53.26 ID:jTATCDj6O 勝俣「やべぇ!!!!ここが軽音部か!!!!!!!!
$. と <> と for と while forでは$.はカウントされない ちょっと違うので横から。 これはforの動作というより、式の評価コンテキストの問題。 forはその性質上、捜査対象は配列になる: for (<>) { .... } # 上記はこれと同等 my @lines = <>; for(@lines) { .... } なので、<>も配列として評価されるべく*まず最初に*<>を最後まで読み切って、行区切りの配列を作ってからforに渡す。このときファイルハンドルを読み切っているので、当然 $.はファイル全体の行数になる。 これに対して、whiileは対象を毎ループ評価するので、1行ずつの読み込みになる。だから$.は行毎の値になる。B::Deparseを使うとちょっとわかるかも。 # こっちはちょっと正直わかりにくいとは思うけど・・・ daisuke@beefcake $ p
golferPerl の偉い人には常識なんだろうけれど。現在の入力ファイル行番号 $. は、for ではカウントされない。while だとカウントされる。 [takeyuki@sunya ^]$ cal | perl -e 'print$..$_ for<>' 8 2月 2010 8日 月 火 水 木 金 土 8 1 2 3 4 5 6 8 7 8 9 10 11 12 13 814 15 16 17 18 19 20 821 22 23 24 25 26 27 828 8 [takeyuki@sunya ~]$ cal | perl -e 'print$..$_ while<>' 1 2月 2010 2日 月 火 水 木 金 土 3 1 2 3 4 5 6 4 7 8 9 10 11 12 13 514 15 16 17 18 19 20 621 22 23 24 25 26 27 72
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く