CGIなどのの質問を受付ます。
現在SPAM対策の為、一部ホストアドレスを規制中。
▼スレッド
│
└◇1030:マッチング置換の件 [うしわか] 03/22 10:03
└◇1031:Re:マッチング置換の件 [moon] 03/22
└◇1033:Re[2]:マッチング置換の件 [うしわか] 03/22
└◇1036:Re[3]:マッチング置換の件 [moon] 03/22
└◇1049:Re[4]:マッチング置換の件 [うしわか] 03/23
└◇1050:Re[5]:マッチング置換の件 [moon] 03/23
└◇1052:Re[6]:マッチング置換の件 [うしわか] 03/24 <
いろいろ調べてみたのですがどうしてもわからないのでスレッド一覧
質問させていただきます。
マッチング置換いついてです。
$coment="hogeではれほれなhogeみたいなhogeたちよ
今日もhogeしよう。";
&change($coment);
sub change{
$_[0]=~ s/hoge/harehore/g;
}
の場合
$coment="harehoreではれほれなharehoreみたいなharehoreたちよ
今日もharehoreしよう。";
となりますが、これを
$coment="harehore01ではれほれなharehore02みたいなharehore03たちよ
今日もharehore04しよう。";
というように連番をつけられないでしょうか。
マッチング数がわからないので(^_^;)
こんな感じでいかがでしょう。スレッド一覧
$coment="hogeではれほれなhogeみたいなhogeたちよ
今日もhogeしよう。";
$i = '01';
while (&change($coment)) {
$i = sprintf("%02d",$i+1);
}
sub change{
$_[0]=~ s/hoge/harehore$i/;
}
> $coment="hogeではれほれなhogeみたいなhogeたちよスレッド一覧
> 今日もhogeしよう。";
>
> $i = '01';
> while (&change($coment)) {
> $i = sprintf("%02d",$i+1);
> }
>
> sub change{
> $_[0]=~ s/hoge/harehore$i/;
> }
>
ありがとうございました。ちなみに
&change($coment);
sub change{
my $i = '01';
while ($_[0]) {
$i = sprintf("%02d",$i+1);
$_[0]=~ s/hoge/harehore$i/;
}
ではだめでしょうか。
> &change($coment);スレッド一覧
>
> sub change{
> my $i = '01';
> while ($_[0]) {
> $i = sprintf("%02d",$i+1);
> $_[0]=~ s/hoge/harehore$i/;
> }
>
> ではだめでしょうか。
試してないけど、それだと無限ループになりませんか?
確かにエラーになりました。なぜでしょう?無限ループ?スレッド一覧
話は変わりますがperlの開発環境、便利ツールなどおすすめがありましたら
教えてください。
現在はAN HTTPDとActivePerl 5.6.1で試験環境を作っています。結構、めちゃくちゃやるのでよくAN HTTPDが死んでしまい苦慮しています。エディタもterapadと秀丸を使っていますがおすすめな環境
は?というかmoonさんはどんな環境でしょうか教えてください。
> sub change{スレッド一覧
> my $i = '01';
> while ($_[0]) {
> $i = sprintf("%02d",$i+1);
> $_[0]=~ s/hoge/harehore$i/;
> }
あ、単にsubの括弧が閉じられてないだけ。
> 話は変わりますがperlの開発環境、便利ツールなどおすすめがありましたら
> 教えてください。
私はApache2とActivePerl(たぶん5.8系)だと思います。特に気にしてません。
あと、sendmailテストしたい場合はsendまねーる(http://www.vector.co.jp/soft/win95/net/se266727.html)とか、
mailサーバー用にpmail(http://akisoftware.jp/index_frame.html)をつかったりとか。
エディタはterapadしか使ってないです。
> あ、単にsubの括弧が閉じられてないだけ。スレッド一覧
(^_^;)