[過去ログ] Perlについての質問箱 64箱目 (1002レス)
前次1-
抽出解除 レス栞

このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
461
(4): 2020/06/12(金)02:39 ID:TN61WwYv(1/4) AAS
宜しくお願いします。
$1をクリアしたい場合は「'' =~ /()/;」等として
無駄なマッチングをして空文字列を設定しないとダメですか?
数億件のデータを捌く際とか、めちゃくちゃタイムロスになりますよね?
皆様はどうされてるのでしょう?
462
(1): 461 2020/06/12(金)02:41 ID:TN61WwYv(2/4) AAS
>>461
↑に追記です。
$2以降のクリアも含めてお願いします。
最適な解を頂ければ幸いです。
463
(1): 540 2020/06/12(金)02:51 ID:OceO7BHX(1) AAS
>>461
まず、scalar変数の場合
=()はできない

=''や""は明示的に空文字列を設定することになる

なので既存変数をクリア、というか不定状態に設定するには
= undef;

あるいは数値を設定するためのシンボルを値0に戻すには
= 0;

undefは値として評価されれれば0,文字列として評価割れれば空文字列''が返った
(と思う)
465
(1): 461 2020/06/12(金)03:24 ID:TN61WwYv(3/4) AAS
>>463
あの…すみません。
スカラー値の評価の話をしている訳ではありません。
$1や$2や$3と言った特殊変数の値をクリアをする方法を聞いています。
これらの特殊変数に値を代入したらエラーになります。

引き続き>>461-462のベストな解をお待ちしています。
宜しくお願いします。
466
(2): 461 2020/06/12(金)03:52 ID:TN61WwYv(4/4) AAS
>>464
計 数億件のデータがあり、
それぞれにはCのラベルのような項目名がありまして、
それに続く文字列がその項目の値になるのですが、
(例えば「name: value…\n」な感じです)
これを一時的にDBに収めるためnameをキーとしてライブラリに渡したいんです。
一般的に思いつく方法としては、
「if( $ln =~ /^(パターン)http://g){ func( $1, $ln ); … }」
とすれば良いのですが、
なにせ件数が多いので、無駄な条件文を省きたいのです。
省9
前次1-
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル

ぬこの手 ぬこTOP 0.162s*