That'll work, but on a finer point, if you need to be thinking about optimization at the moment:
($substring1 = $string) =~ s/.*\\(.*)/$1/; ....is about 4 times slower than: ($substring2 = $string) =~ s/.*\\//; ....because the second one doesn't have to store the matched value inside the parens in $1. In test below: substring1 code took: 20 wallclock secs (20.05 usr + 0.00 sys = 20.05 CPU) substring2 code took: 5 wallclock secs ( 5.15 usr + 0.00 sys = 5.15 CPU) So it can be best to use $1 thru $9 only when necessary if speed matters. Gary ====== Notes: In this test script we do the substitution a million times for each method and then print the benchmark results. You can tailor this script to check the comparison on any two or more different ways of doing something. #!perl.exe use Benchmark; $string ='C:\PerlScripts\TestSamples\StringTest.pl'; # substring1 method $i = 0; $t0 = new Benchmark; while ($i < 1000000) { ($substring1 = $string) =~ s/.*\\(.*)/$1/; $i++; } $t1 = new Benchmark; $td = timediff($t1, $t0); print "substring1 code took: ", timestr($td), "\n\n"; # substring2 method $i = 0; $t0 = new Benchmark; while ($i < 1000000) { ($substring2 = $string) =~ s/.*\\//; $i++; } $t1 = new Benchmark; $td = timediff($t1, $t0); print "substring2 code took: ", timestr($td), "\n\n"; __END__ Printed result: substring1 code took: 20 wallclock secs (20.05 usr + 0.00 sys = 20.05 CPU) substring2 code took: 5 wallclock secs ( 5.15 usr + 0.00 sys = 5.15 CPU) > -----Original Message----- > From: Shawn [mailto:[EMAIL PROTECTED]] > Sent: Sunday, January 06, 2002 1:03 PM > To: [EMAIL PROTECTED]; David > Subject: Re: Using regexp to get a substring > > > "David" <[EMAIL PROTECTED]> wrote in message > [EMAIL PROTECTED]">news:[EMAIL PROTECTED]... > > Hello All, > > > > I am beginner and need some helps. Thanks a lot! > > > > The question is, if I have a string, for example > > "C:\PerlScripts\TestSamples\StringTest.pl", how do I use regexp to parse > > this string and get substring after the last backslash ("StringTest.pl"). > > Hey David, > This should work for you: > > use strict; > my $String='C:\PerlScripts\TestSamples\StringTest.pl'; > (my $substring =$string) =~s/.*\\(.*)/$1/; -- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]