"West, William M" <[EMAIL PROTECTED]> writes:
> i'd like to take a couple of strings to concatonate to a path...
>
> here's my start the code:::
>
> #!/usr/bin/perl -w
>
>
> use strict;
> use diagnostics;
>
> my $date = `date`; #not sure about redirecting output to $path!
>
> $date=~s/( ){3}/; #i think this is proper to just take the string
> #up to the third whitespace character...
Nope - I think:
$date =~ s/^(\S*\s\S*\s\S*).*/$1/s;
Will do it, though...I'm sure there are better ways, that's
just the first thing I though of - someone with more regexp-foo can
probably help there.
> my $filename = append_date_to_rest_of_filename();
Regarding the actualy concatenation, do you mean:
for the directory '/tmp/foo', get back '/tmp/foo-Mon Jun 16'?
If so, just use the '.' operator:
my $dir = '/tmp/foo-' . $date;
If you want to get '/tmp/foo/Mon Jun 16', use File::Spec->catfile.
Here's an example from a script I wrote to download images from a
digital camera, storing each new set of images in it's own directory
under todays date:
use POSIX;
use File::Spec
my $destination_path = '/tmp/foo;
my $date = strftime("%Y-%m-%d", localtime time);
my $target_dir = File::Spec->catfile($destination_path, $date);
So $target_dir is now '/tmp/foo/2003-06-16', for instance.
You'll notice I used strftime to get the date instead of parsing
`date` - probably easier and more correct.
For my script, I also check to make sure the directory in $target_dir
doesn't already exist - this may or may not apply for your
application, though.
-RN
--
Robin Norwood
Red Hat, Inc.
"The Sage does nothing, yet nothing remains undone."
-Lao Tzu, Te Tao Ching
--
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]