On Sat, 23 Oct 2004 [EMAIL PROTECTED] wrote:
> I found the logic
>
> use File::Basename;
> $FILENAME="/Developer/view_local/local_nt/FDAFDSAFDSASDFA/ASDFDAFSASDF/NewProcess_date_22-oct-2004.log";
> my $name = basename($FILENAME,'.log');
> print substr($name, 0, 7);
FINALLY you have some code! :-)
You kept up your end of the request, here's my end, and my approach:
$ cat ~/tmp/test.pl
#!/usr/bin/perl
use strict;
my $file =
"/Developer/view_local/local_nt/FDAFDSAFDSASDFA/ASDFDAFSASDF/NewProcess_date_22-oct-2004.log";
-> ( my $name = $file ) =~ s#.*/(.......)[^/]*$#$1#;
print "$name\n";
$ perl ~/tmp/test.pl
NewProc
$
The key line is the one with the -> marker. There are several ways this
could be written, but the basic idea is to match & capture the first
seven characters after the last slash character. I've written it here by
using a substitution on the $file variable that matches everything up to
a '/', then captures the next seven characters (it doesn't matter what
they are), then checks that from there to the end of the line there are
no further slashes; the captured portion is saved and everything else is
thrown away, and this gets stored back into the new $name variable.
Make sense?
The BASENAME approach isn't bad either, but in this case the task is
simple enough that I think it can safely be done without pulling in the
extra module to get that functionality. What I'm doing would work with
that as well though:
$ cat ~/tmp/test.pl
#!/usr/bin/perl
use strict;
my $file =
"/Developer/view_local/local_nt/FDAFDSAFDSASDFA/ASDFDAFSASDF/NewProcess_date_22-oct-2004.log";
-> my $name = basename($file,'.log');
-> $name =~ s/^(.......).*$/$1/;
print "$name\n";
$ perl ~/tmp/test.pl
NewProc
$
So here, the basename() function strips out the path information, then I
modify the substitution to match the first seven characters, no matter
what they are, and throw out everything after that.
Make sense?
--
Chris Devers
--
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
<http://learn.perl.org/> <http://learn.perl.org/first-response>