Perlについての質問箱 52箱目
■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん
2012/05/06(日) 10:21:12.81CGI と Perl の区別がつかない人も WEB プログラミング板に行ってください。
(WEB プログラミング板: http://hibari.2ch.net/php/ )
このスレでは(CGI 以外の)純粋にPerlのみに関係する質問を取り扱っていこうと思います。
スレ違いの質問にはスルーか、速やかな誘導をお願いします。
"The duct tape of the Internet" こと、Perl についての質問箱です。
"There's more than one way to do it" ということで、
Perl の奥深さについて皆で語り合い、追求してまいりましょう。
http://www.perl.org/get.html
Download Latest Stable Source (5.14.2)
▼ 前スレ
Perlについての質問箱 51箱目
http://toro.2ch.net/test/read.cgi/tech/1330666216/
リンク集は >>2-3
Perl 日本語処理の基礎の基礎 >>4
0153デフォルトの名無しさん
2012/05/22(火) 08:26:35.41朝早くから返信有難う御座います!
とりあえずWperlで実行するように関連付けと拡張子を変えてみました。
やっぱりほんの一瞬だけプロンプトが出ますが、Perl.exe出実行するより断然短かったのでこれで行こうと思います。
Joinもスクリプトに書いてみたところ上手く分割されずにできてました!
半角スペースと全角スペースの分で2列書くことになりましたけど満足です。
ありがとうございましたm(_ _)m
0154デフォルトの名無しさん
2012/05/22(火) 13:18:33.120155デフォルトの名無しさん
2012/05/22(火) 14:00:45.950156デフォルトの名無しさん
2012/05/22(火) 15:01:41.250157!ninja
2012/05/24(木) 12:48:14.92その他色々なプログラムの見本が乗っているものがほしいです。
0158デフォルトの名無しさん
2012/05/24(木) 13:26:08.68>>2-3やgoogle検索は?
0159デフォルトの名無しさん
2012/05/24(木) 15:39:54.91Net::FTPで
$ftp->get(target,local);
とやってダウンロードせずに、targetの中身をそっくり変数(たとえば$temp)にぶち込む方法ってありませんか?
対象は4kbほどのテキストファイルです。
よろしくお願いします。
0160デフォルトの名無しさん
2012/05/24(木) 16:32:36.93use IO::All::LWP;
print io("ftp://ftp.freebsd.org/pub/FreeBSD/ports/amd64/packages-8-stable/INDEX.bz2.md5")->all;
0161デフォルトの名無しさん
2012/05/24(木) 16:32:54.810162デフォルトの名無しさん
2012/05/24(木) 16:43:47.43スレ立てる奴が誰一人気にしないという恐怖
0163デフォルトの名無しさん
2012/05/24(木) 17:13:12.98そしてオマエに「オレが書きなおしてやる!」という気概がない
という恐怖
0164デフォルトの名無しさん
2012/05/24(木) 17:14:30.56ありがと。
難しいな…
>>161
ごめん。
× ダウンロードせずに
○ ファイルとして保存せずに
0165デフォルトの名無しさん
2012/05/24(木) 17:38:00.94use Net::FTP;
my $ftp = Net::FTP->new("ftp.freebsd.org");
$ftp->login("anonymous",'-anonymous@');
my $temp = do {
my ($rfh, $wfh);
pipe($rfh, $wfh);
$ftp->get("/pub/FreeBSD/ports/amd64/packages-8-stable/INDEX.bz2.md5", $wfh) or die "get failed ", $ftp->message;
close $wfh;
local $/;
<$rfh>;
};
print $temp;
0166デフォルトの名無しさん
2012/05/24(木) 17:55:50.94どうしてもHDDを経由したくなければRAMDISK
それもいやならSTDOUTに吐いてもらうスレッド別個に走らせて
パイプ介して受け取るとか試すかなあ
可能性や容易性とかさっぱり予測つかんが
0167デフォルトの名無しさん
2012/05/24(木) 19:07:06.68調べてはみましたが自分では欲しい情報が見つからなかったので質問させてもらいました
0168デフォルトの名無しさん
2012/05/24(木) 21:23:30.73open(my $fh, '>', \(my $temp)) or die $!;
...
$ftp->get($path, $fh) or die("get failed ", $ftp->message);
$ftp->quit;
$fh->close;
print $temp;
0169デフォルトの名無しさん
2012/05/25(金) 00:02:49.640170デフォルトの名無しさん
2012/05/25(金) 00:28:05.210172デフォルトの名無しさん
2012/05/25(金) 14:14:00.44ありがとう。
doの使い方、いろんな本読んだ中で、これが一番わかりやすい気がする…
>>166
大きいファイルの時(アクセスログなど)の時は一度ファイルに書き出してからそれを開いているのですが、十分に小さいから直接やりたいなって。
>>168
ありがとう!
> '>', \(my $temp)
がわからなくて、何度やってもうまくいかなかった。
>>169
>>170
このファイルのパーミッションが600。
そして置いているのはドキュメントルートの外。
一般には読みだされたくない情報ファイルなのよ。
みんなありがとう。がんばってみます。
0173デフォルトの名無しさん
2012/05/25(金) 14:19:08.66な?どんな本よりもこのスレの方がはるかに役に立つだろ?
0174デフォルトの名無しさん
2012/05/25(金) 16:27:58.28<=>
てのがあった。
ぐぐっても無かった。
どうゆう(演算子)?
0175デフォルトの名無しさん
2012/05/25(金) 16:32:04.200176デフォルトの名無しさん
2012/05/25(金) 16:38:55.04>>175で大体おk。ただし==とかと同じく数値で比較。
で、こういう演算子系はperldoc perlopで調べるもの今後覚えておくべし。
ttp://perldoc.jp/docs/perl/5.14.1/perlop.pod
0177デフォルトの名無しさん
2012/05/25(金) 17:02:31.17ソートで使う系か
thx
0178デフォルトの名無しさん
2012/05/25(金) 22:24:45.200179デフォルトの名無しさん
2012/05/25(金) 22:27:17.00decode:文字列を内部形式に変換
encode:内部形式の文字列をいろんなエンコードに変換
0180デフォルトの名無しさん
2012/05/25(金) 23:56:31.64エンcode は点々が点かないのでフラグが落ちる。
煩わしい場合は全部フラグなしで通しても構わない。
その場合はencode、decodeの使い分け方に悩まずに済む。
0181デフォルトの名無しさん
2012/05/26(土) 00:20:03.920182デフォルトの名無しさん
2012/05/26(土) 20:23:21.240183デフォルトの名無しさん
2012/05/26(土) 20:28:45.72日本なら¥でなんとかする
0184デフォルトの名無しさん
2012/05/26(土) 20:34:22.760185デフォルトの名無しさん
2012/05/26(土) 20:37:19.48\(を他の一文字に変えて代入すると正しく置換されるんですが
$s = "foo\(bar\)";
$b = "foo\(bar\)";
$s =~ s/$b/replace/;
print "$s\n";
出力結果:foo(bar)
0186デフォルトの名無しさん
2012/05/26(土) 20:44:38.56$b = "foo\(bar\)";
$s =~ s/$b/replace/;
print "$s\n";
または
$s = "foo\(bar\)";
$b = "foo\\(bar\\)";
$s =~ s/$b/replace/;
print "$s\n";
0187デフォルトの名無しさん
2012/05/26(土) 20:45:23.010188デフォルトの名無しさん
2012/05/26(土) 20:56:17.91http://ideone.com/29qU1
>>186
2番目は合ってる
>>187
ごめんなさい
0189デフォルトの名無しさん
2012/05/26(土) 20:58:36.88$pee = "foo[(]bar[)]";
0190デフォルトの名無しさん
2012/05/26(土) 22:02:45.21一応全て自分で考えて書いた物です。(なぜ1日で分からなくなるんだ?)。
数学的知識が必要と思われます。誰か解説して下さい。
※書き込むために全書くスペースを使ってます。コピーで動作しません。
my ($xx, $yy, $rr_2) = (256, 256, 253); #xとyは円の中心位置。rは半径。
foreach my $rr ( 0 .. $rr_2){ #0から指定された半径の大きさの円までを全て描く
foreach my $vv ( 0 .. int ($rr / 1.4142 + 0.5) ){ #1.4140 < n < 1.4146, nは不明数値を少なくすれば問題は起きない。
my $vv2 = int( sqrt(($rr ** 2) - ($vv ** 2)) +0.5 ); #1pixづつずらして計算する要素
#1/8づつ円周を描画
$::image->[$xx + $vv]->[$vv2 + $yy] = 2; #x軸をずらした場合のyの位置を描画
$::image->[$xx - $vv]->[$vv2 + $yy] = 3;
$::image->[$xx + $vv]->[0 - $vv2 + $yy] = 4;
$::image->[$xx - $vv]->[0 - $vv2 + $yy] = 5;
$::image->[$vv2 + $xx]->[$yy + $vv] = 6; #y軸をずらした場合のxの位置を描画
$::image->[$vv2 + $xx]->[$yy - $vv] = 7;
$::image->[0 - $vv2 + $xx]->[$yy + $vv] = 8;
$::image->[0 - $vv2 + $xx]->[$yy - $vv] = 9;
}
}
半径を1pxずつずらして指定の大きさまでの円を重ねて書くプログラムです。動作します。
数学的知識が全然ないまま手探りで作りました。質問事項は三つです。
1.4142が2の平方根に見えます。自分で探し出した数値なんですかこれはなんですか?
$vvはなにを意味してますか?
$vv2はなんですか?
自分で書いたコメントがついてるにも関わらず、すでにコメントの意味がわからないです。
プログラムの全容が必要なら全部書きますが、分からない箇所はここだけです。
0191デフォルトの名無しさん
2012/05/26(土) 22:59:54.41無責任にコメント
#1/8づつ円周を描画
にある通り、円を八等分して描画しているんだろう
そんでもって上下左右からはじまって、徐々に斜め方向に
進んでいくんだが斜めの座標は
直角二等辺三角形の辺の比が1:1:√2であることから
√2が関わってる
例えば中心から右少し上の領域はこうなっているわけだ
○←描画点
┃ }$vv 0 〜 半径÷√2
●━━━━━━━━━━━━┛
↑中心点 ↑の長さが$vv2
…当然、右少し下、上少し右、上少し左、左少し上、左少し下、
下少し左、下少し右の残りの7点も似た感じで描画しているんだろう
+1/2はマス目の中心を格子点ではなく格子点の間に置いているイメージなのかな
眠くて頭働いてないから豪快に間違ってるかもしれん
0192デフォルトの名無しさん
2012/05/26(土) 23:37:58.45三平方の定理(r**2 = x**2 + y**2)が成り立つ点P(x,y)の集合を描画すれば半径rの円が描ける。
円を8等分して描いてるので、x=0から始めてr**2 = x**2 + x**2を満たすxの位置までを描けばいい。
0193190
2012/05/27(日) 00:04:44.52本当にありがとうございます!
私のプログラムなのに私より詳しい!!
√2は、1/8づつ描画するため、直角二等辺三角形になるまでループしろと言うことだったんですか。
よくわからずに適当に数値を打ち込みながら1.4142を出してました。
vv と vv2 は描画するのが真円だから、x軸 でも y軸でもどうでも良かったんですね。
それで x や y を使わないでも v から座標が出るし、
v を x や y だと固定しないことで一回のループから 8個の描画が出来ると…。
なんで私がこんな合理的な処理を作れたんだろう…。
しかも覚えてないわ、自分でも意味分かってないわ、なのに…。
数式の意味も分からないまま、記述だけを見て処理や記述をカットして短く出来そうな所を短くしていった記憶だけはあるんですが。
本当にありがとうございました。助かりました。
>>192
ありがとうございます。数学的に説明されると意味が分かるような分からないような。
0194デフォルトの名無しさん
2012/05/28(月) 13:10:15.84my $ua = LWP::UserAgent->new();
$ua->max_redirect(3);
$ua->agent('firefox12 の UA');
my $req = GET('http://www.youtube.com/');
my $res = $ua->request($req);
my $html = $res->decodec_content( charset => 'utf-8') || '';
このようにして HTML を取得しているのですが、URL Snooper2 で監視してたら、
ページ内にある <img> などにもアクセスを行っていました。
ページ内の src などにはアクセスさせず、純粋に HTML のみが欲しいのですが、
これを抑止する方法は無いのでしょうか?
0195デフォルトの名無しさん
2012/05/28(月) 13:20:46.740196デフォルトの名無しさん
2012/05/28(月) 13:21:29.13それ以前にそのコード動くんですか?
先頭に「use LWP::UserAgent;」を追加しても、こんなエラーが出ます。
Undefined subroutine &main::GET called at ./194.pl line 7.
0197デフォルトの名無しさん
2012/05/28(月) 13:28:47.760198196
2012/05/28(月) 14:07:14.94ありがとう
use HTTP::Request::Common;
も追加したら動きました
で、確認してみたんですが、このスクリプトから
img srcを解析してアクセスしている様子はみられませんでした
別のブラウザが動いていたのでは?と思うのですが…
0199デフォルトの名無しさん
2012/05/28(月) 14:11:36.99すみません。>>197 さんが書いてる通りです。
>>195
while($html =~ s/<div id="hoge">(.+?)><\/div>//is){ 〜 }
このように、正規表現で必要なところを抜き取るためだけに使用してます。
0200デフォルトの名無しさん
2012/05/28(月) 14:14:38.11OS 起動
URL Snooper2 を起動
スクリプトを走らせる
といった最小限の行動でも、うちでは URL Snooper が検知しました。
人様に渡す予定のあるものなので、「他の URL にアクセスしてるんだけど」
といったことを言われないようにしたいので、今回 URL Snooper2 で調べたら
他の URL もアクセスしてたので気になって質問させて貰っている次第です。
0201デフォルトの名無しさん
2012/05/28(月) 14:47:14.55同じくイメージファイルにアクセスは無かった。Wiresharkで確認。
0202デフォルトの名無しさん
2012/05/28(月) 14:59:23.78ん〜
>>201 さんが使ってる TCP/IP Snoop のソフトが反応してないだけだし、
問題無さそうですね。
ありがとうございました。
0203デフォルトの名無しさん
2012/05/28(月) 21:46:42.93UAやリファラの偽装は前提とします。
0204デフォルトの名無しさん
2012/05/28(月) 23:44:18.10単発ならWWW::Mechanizeでいけるかもね。
0205デフォルトの名無しさん
2012/05/29(火) 01:16:39.84ありがとうございます。さすがに・・ですよね。
プロキシのリストとりつつアクセスしていくみたいなのありかなと思ったので・・
もちろん締め出しこわいので実際にはやりませんが
0206デフォルトの名無しさん
2012/05/31(木) 00:01:00.45探すプログラムを書いているんですが、最終的な検索がうまく
いきません。
ファイルをopenして、一定の長さのデータを読み込んでから、
unpack()で16進文字列(?)に変換して、index()で検索している
のですが、テスト用のデータで確かに検索対象の16進文字列
があるはずなのに、index()の戻り値が-1になってしまいます。
my $seach = "ffffffffff";
read(IN,$buf,$size);
my $data = unpack("H*",$buf);
my $pos = index($data,$search);
みたいな感じで、$data内には"ffffffffff"が見えるのですが、
$pos=-1で戻されてしまいます。
unpackで変換した$dataは文字列として解釈されてないので
しょうか?
0207デフォルトの名無しさん
2012/05/31(木) 02:11:31.610208デフォルトの名無しさん
2012/05/31(木) 07:28:45.00若干省きましたが、binmodeにはなってます。
0209デフォルトの名無しさん
2012/05/31(木) 08:09:51.00次に$dataの中身を目で確認。
0210デフォルトの名無しさん
2012/05/31(木) 08:28:51.99そのへんもデバッガモードで動かしてみましたが、
問題ないようでした。
$dataも16進文字列(と思われるもの)がずらっと
並んでいるのを確認できます。
見た目、p $dataした中に"ffffffffff"が見えて
るのですが、次のステップに進むと$pos=-1で
返されていて、???という状態です。
当初、いくつかのサイトで$searchのほうをpack
したり、"\xff\xff\xff…"みたいな書き方でバイ
ナリのままindex()で検索するサンプルコードを
見つけたので、それを基に作っていたのですが、
どうしてもヒットしないので、読み出したデータ
のほうを文字列化してから検索すれば問題なかろ
うと思って、前のコードにしてみましたが、結局
あまり状況に変化がありませんでした。
ちなみに、変数に直接16進数でバイナリを突っ込
みたい場合は、↑に書いたように1バイトごとに
分けてから、\xを付加して代入でいいんですよね?
0211デフォルトの名無しさん
2012/05/31(木) 08:36:29.21「若干省きましたが」
0212デフォルトの名無しさん
2012/05/31(木) 09:42:06.29my $search = "ffffffffff";
my $buf = "\x20\x20\x20\xff\xff\xff\xff\xff\x20\x20";
my $data = unpack("H*", $buf);
my $pos = index($data, $search);
print $pos;
実験してみて、6が出るか確認。
出ればreadか、省いた部分に問題がある。
0213デフォルトの名無しさん
2012/05/31(木) 14:46:24.22ちゃんと6と出ました…
いろいろ試行錯誤した結果、
>省いた部分に問題がある。
がビンゴのようです、、、orz.
実際検索するバイト列の$searchは、複数設定したかったので、
冒頭で別のテキストファイルを読み込んで配列にいれていたの
ですが、ここがガンだということがわかりました。
my $list = shift;
open(IN, $list);
my @search = <IN>;
close(IN);
というような感じで、>>206の"my $pos = index($data,$search);"
を@searchの個数分だけ回していたのですが、これを入れるとダメ
になります。上記のファイルオープンを無くして、
my $search = shift;
にして、検索文字列の個数分ループを外したら、とたんに検索
がヒットするようになりました。
リストファイルは普通に16進数文字列が数行書いてあるだけの
テキストファイルなのですが、何か文字コードや改行関係で
最初のリスト読み込みのコードだと問題あるのでしょうか?
perlが動いているマシンはlinux(EUC)で、テキストファイルは
たしかにwindowsでも触った覚えはあるのですが、デバッガモード
で$search[x]で見る分には、普通の文字列に見えていたのですが…?
0214デフォルトの名無しさん
2012/05/31(木) 15:14:31.8715時間もムダにならなかった、
せいぜい1時間くらいで解決できた
こうやってデスマーーーーーーーーーーーーーーーーーーーーーーチが生まれる
一番のガンはお前だ
0215デフォルトの名無しさん
2012/05/31(木) 15:45:40.140216デフォルトの名無しさん
2012/05/31(木) 16:03:51.82chompを忘れてるとエスパーしてみる。
0217デフォルトの名無しさん
2012/05/31(木) 19:22:05.98サーセン <(_ _)>
>>216
多分、ビンゴっぽいのですが、若干修正してもまだ動かないので、知恵を貸して下さい。
サンプルと助言をいろいろつぎはぎして、↓のようなコードになりましたが、相変わらずこれだと検索できません…
0218デフォルトの名無しさん
2012/05/31(木) 19:22:23.35open(IN, $list) || die 'cant open list file';
chomp(my @search=<IN>);
close(IN);
my $BUFFER_SIZE = 1024 * 4;
foreach my $file (@ARGV){
if(! -f $file){ next; }
print "$file\n";
open my $FH, "<", $file || die 'cant open file';
binmode($FH);
my $buf;
my $data;
my $totalread = 0;
my $readlength = 0;
while($readlength = read($FH, $buf, $BUFFER_SIZE)){
foreach (@search){
my $data = pack("H*", $_);
my $pos = -1;
while( 1 ){
$pos = index($buf, $data, $pos + 1);
last if $pos == -1;
printf("\toffset:%x", $totalread + $pos);
print " -> ", unpack("H*", $data), "\n";
}
}
$totalread += $BUFFER_SIZE;
}
close $FH;
}
0219デフォルトの名無しさん
2012/05/31(木) 19:23:22.46検索文字列を1個だけとって、@searchのループをしないように
するときっちり検索できるのですが…
・diff結果
5,9c5
< my $list = shift;
< open(IN, $list) || die 'cant open list file';
< chomp(my @search=<IN>);
< close(IN);
<
---
> my $search = shift;
24c20
< foreach (@search){
---
> #foreach (@search){
26c22
< my $data = pack("H*", $_);
---
> my $data = pack("H*", $search);
35c31
< }
---
> #}
まだ、文字列の取り扱いをミスっているのでしょうか?
0220デフォルトの名無しさん
2012/05/31(木) 20:03:37.390221デフォルトの名無しさん
2012/05/31(木) 20:15:35.57いじれるような変数を生成するためには
どこにどのように宣言したらよいでしょうか?
0222デフォルトの名無しさん
2012/05/31(木) 20:22:00.39chompの代わりにこれつかうといいよgはなくてもいい
$line =~ s/\x0D?\x0A?$//g;
0223デフォルトの名無しさん
2012/05/31(木) 20:28:58.09package Foo;
my $shared;
sub shared_var {
if (@_) { $shared = $_[0]; }
$shared;
}
0224デフォルトの名無しさん
2012/05/31(木) 20:35:01.45ありがたや!
この場合のmy $shared;
てゆうのはどのタイミングで宣言されるの?
要は、最初だけ初期化して
あとはインスタンスのやつらがその変数をいじりたおすってこと
したいんだけど。
0225デフォルトの名無しさん
2012/05/31(木) 20:59:19.460226デフォルトの名無しさん
2012/05/31(木) 21:08:23.63コードが読み込まれて実行される時。
あれが Foo.pm に書かれてて他のファイルから use Foo とかするならその時。
サブルーチン Foo::shared_var がいつ定義されるかってのと同じ。
カプセル化が必要なければもちろん our でよし。
0227デフォルトの名無しさん
2012/05/31(木) 22:34:34.17>>222
リストファイルのほうをod -tx1してみたら、見事に0d0aが
入ってました、、、orz.
日頃はshellとawkばっかりなので、改行の扱いとかルーズ
でしたが、こんなにハマるものとは…
結局、リストの読み込み部分を、>>220さんの指示通り、
my @search;
my $list = shift;
open (IN, $list) || die 'cant open list file';
while(<IN>){
s/\x0D?\x0A$//g;
push(@search, $_);
}
close(IN);
とすることで、無事に複数の文字列を検索させることが
できました。
ありがとうございました〜
0229デフォルトの名無しさん
2012/05/31(木) 22:57:34.670230デフォルトの名無しさん
2012/05/31(木) 23:33:11.84表示したままにすることはできますでしょうか?
いったん画面が白くなるより、なにか見せてたほうがユーザがストレスに
感じないように思うんです。
prototype.jsとかのお話になってしまったら恐縮です。
0231デフォルトの名無しさん
2012/06/01(金) 00:02:55.88CGI と Perl の区別がつかない人も WEB プログラミング板に行ってください。
0232デフォルトの名無しさん
2012/06/01(金) 07:57:10.65つ[javascript]
0233デフォルトの名無しさん
2012/06/01(金) 11:50:56.280234デフォルトの名無しさん
2012/06/01(金) 12:11:13.19ありがとうございます。やはりjavascriptでやるしかないですか・・・
>>233
それでいいかもと思うようにちょっとなりましたw
0235デフォルトの名無しさん
2012/06/02(土) 08:49:50.70「.jpg」が末尾にないものは消去されてしまいます
解決策教えて下さい
$s = "<a href=\"url\" target=\"_blank\">url</a><a href=\"http://foo.jpg\" target=\"_blank\">foo</a><a href=\"http://bar.jpg\" target=\"_blank\">bar</a>";
$s =~ s/<a href="(.*?)\.jpg"/<a href=\"replace\"/g;
print "$s\n";
"<a href=\"url\" target=\"_blank\">url</a>"
↑この部分なくなる
</a>まで消えるんですが一体どういうカラクリで・・・?
0236デフォルトの名無しさん
2012/06/02(土) 09:20:28.94.*?がどこにマッチしてるかを考えろ
0237デフォルトの名無しさん
2012/06/02(土) 09:58:32.410238デフォルトの名無しさん
2012/06/02(土) 10:04:56.28use v5.14;
my $s = q{<a href="url" target="_blank">url</a><a href="http://foo.jpg" target="_blank">foo</a><a href="http://bar.jpg" target="_blank">bar</a>};
say $s =~ s/<a href="(.*?)\.jpg"/<a href="replace"/gr;
say $s =~ s/<a href="([^"]*)\.jpg"/<a href="replace"/gr;
⇒
<a href="replace" target="_blank">foo</a><a href="replace" target="_blank">bar</a>
<a href="url" target="_blank">url</a><a href="replace" target="_blank">foo</a><a href="replace" target="_blank">bar</a>
問題が発生した原因は、「(.*?)」が「.jpg"」が出てくるまで全部マッチしたためですね
>>236
落ち着け
0239デフォルトの名無しさん
2012/06/02(土) 10:38:14.80バラバラに分解したほうが早いんじゃあないかな
web::scraperとか
firefoxいれてるならfirebugも併用するとか
0240デフォルトの名無しさん
2012/06/03(日) 21:49:44.05ループの回数が増えるほどメモリを喰って処理が遅くなっていきます。
それぞれの変数が確保してるメモリの量を見る方法はないでしょうか?
0241デフォルトの名無しさん
2012/06/03(日) 22:25:46.21$hoge =~ s/\n*/<br>/g;
ではできませんでした。
0242デフォルトの名無しさん
2012/06/03(日) 22:44:37.720243デフォルトの名無しさん
2012/06/03(日) 22:45:08.521)改行が「\r\n」だと無意味
2)てか\n*だと全文字の間に<br>が入っちゃうよ?
てことで
$hoge =~ s/(\r?\n)+/<br>/g;
でどう?
0245デフォルトの名無しさん
2012/06/03(日) 22:48:58.11複数の改行とは書いてあるが
複数の連続する改行とは書いてないぞ。
0246デフォルトの名無しさん
2012/06/03(日) 22:53:56.520247241
2012/06/03(日) 23:26:42.09無事できました!
0248245
2012/06/04(月) 00:15:13.240249240
2012/06/04(月) 00:18:02.48Devel::Sizeでできました。
0250245
2012/06/04(月) 00:22:25.530251デフォルトの名無しさん
2012/06/04(月) 04:18:44.320252デフォルトの名無しさん
2012/06/04(月) 05:51:32.77相当悔しかったようだが、そのタイミングではもう無理
■ このスレッドは過去ログ倉庫に格納されています