sanket vaidya wrote:
HI all,

Hello,

Kindly go through the code below.

use warnings;
use strict;
my $i=1;
while($i<=10)
{
$_ = "abcpqr";
$_=~ s/(?=pqr)/$i/;
print "$_\n";
$i++;
}

Output:
abc1pqr
abc2pqr
abc3pqr
abc4pqr
abc5pqr
abc6pqr
abc7pqr
abc8pqr
abc9pqr
abc10pqr

The expected output is

abc001pqr
abc002pqr
abc003pqr
abc004pqr
abc005pqr
abc006pqr
abc007pqr
abc008pqr
abc009pqr
abc010pqr

Can any one suggest me how to get that output using regex. i.e. Can this
happen by making change in regex I used in code??

$ perl -e'
use warnings;
use strict;
for my $i ( 1 .. 10 ) {
    $_ = "abcpqr";
    $_ =~ s/(?=pqr)/sprintf q[%03d], $i/e;
    print "$_\n";
    }
'
abc001pqr
abc002pqr
abc003pqr
abc004pqr
abc005pqr
abc006pqr
abc007pqr
abc008pqr
abc009pqr
abc010pqr


Or maybe this would be better:

$ perl -e'
use warnings;
use strict;
$_ = "abcpqr";
$_ =~ s/(?=pqr)/%03d/;
for my $i ( 1 .. 10 ) {
    printf "$_\n", $i;
    }
'
abc001pqr
abc002pqr
abc003pqr
abc004pqr
abc005pqr
abc006pqr
abc007pqr
abc008pqr
abc009pqr
abc010pqr



John
--
Perl isn't a toolbox, but a small machine shop where you
can special-order certain sorts of tools at low cost and
in short order.                            -- Larry Wall

--
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
http://learn.perl.org/


Reply via email to