[tpm] Regex question

Dave Doyle dave.s.doyle at gmail.com
Tue Jul 8 08:19:45 PDT 2008


As an aside, if the first part of the string is always the same length
you can always do a simple substr call.

my $foo="ABC-987-01";
my $bar = substr( $foo, 0, 7);


On Tue, Jul 8, 2008 at 11:16 AM, Dave Doyle <dave.s.doyle at gmail.com> wrote:
> my $foo="ABC-987-01";
> my ($bar) = $foo =~ /^(B\w+-\d+)-\d+$/;
>
> This'll do the trick but you'd still have to test that $bar is defined
> (i.e. the match was successful).
>
>
> On Tue, Jul 8, 2008 at 11:00 AM, Madison Kelly <linux at alteeve.com> wrote:
>> Hi all,
>>
>>  I've got a simple problem I often come across, and I've got a way to make
>> it work. However, I've always felt there must be a more ... elegant way of
>> doing it.
>>
>> For example, let's say I want to copy a variable and strip a bit off the
>> end;
>>
>> my $foo="ABC-987-01";
>> my $bar=$foo;
>> $bar=~s/(\w+-\d+)-\d+/$1/;
>> # $bar now 'ABC-987'.
>>
>> That's three lines. Is there a way to do this in one line? Specifically, is
>> there a way to assign '$1' to a new variable in one go?
>>
>> Thanks!
>>
>> Madi
>> _______________________________________________
>> toronto-pm mailing list
>> toronto-pm at pm.org
>> http://mail.pm.org/mailman/listinfo/toronto-pm
>>
>
>
>
> --
> dave.s.doyle at gmail.com
>



-- 
dave.s.doyle at gmail.com


More information about the toronto-pm mailing list