[tpm] Regex question

Jim Graham james.a.graham at gmail.com
Tue Jul 8 08:20:30 PDT 2008


Hi

   You can do

   my $foo='ABC-987-01';
   ( my $bar = $foo ) =~ s{(\w+-\d+)-\d+}{$1};
   print $bar, "\n";
   #-- prints
   #ABC-987

   That cuts one line

   - jim


On 8-Jul-08, at 11:00 AM, Madison Kelly 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



More information about the toronto-pm mailing list