Chas Owens wrote:
On 7/31/07, John W. Krahn <[EMAIL PROTECTED]> wrote:
snip
Or more simply as:

#!/usr/bin/perl

use strict;
use warnings;

print 'Enter 5 digits: ';
( my @arrow = <STDIN> =~ /\d/g ) == 5 or die "Only five digits !\n";

for ( 0 .. $#arrow ) {
     print join( ',', ( $arrow[ $_ ] ) x ( $_ + 1 ) ), "\n";
     }

__END__
snip

Two issues:
    this doesn't fail on "foo1bar2baz345"
    it does fail on "1234" (the original doesn't)

I was thinking

#!/usr/bin/perl

use strict;
use warnings;

print 'Enter 5 digits: ';
my @a = <STDIN> =~ /^(\d)(\d)?(\d)?(\d)?(\d)?$/g

You are using the /g option but the pattern is anchored at the beginning and ending of the line so it will only match once making the /g option superfluous. (Even if you added the /m option it would still only contain one line because the readline is in scalar context so the /g option would still be superfluous. :-)


        or die "Only five digits !\n";
my $i = 1;
print map { $_ x $i++, "\n" } @a;


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