john brown wrote:
> This script receives input from the command line. I put in for
> example "www.musicdownload.com/song1.mp3". The script looks for the
> ".mp3" extension and increments the preceeding number to 10. This
> works fine, printing the result to the screen. As you can see, I
> would like to write the results to a file called "wget_input". Wget
> reads from this file and the songs are retrieved. The problem I have
> is with writing all of the results to the file, in this
> case/www.musicdownload.com/song10.mp3" gets written to the file only.
> I know it must be incremented and written after each result, but I
> don't know how to go about constructing the loop. Any ideas?
>
>
>
> #! /usr/bin/perl -w
> #
> # mp3_search
> #
>
> print "Input path to video archive\n";
> $stdinput = <STDIN> ;
> chomp ($stdinput);
> $path = "$stdinput";
>
> $count = substr ($path, rindex ($path, ".mp3") - 1, 1);
>
> for ($count .. 10)
> { substr ($path, rindex ($path, ".") - 1, 1, $count++); print
> "$path\n"; }
>
> open (OUTPUTFILE,">wget_input")|| die "Failed to open
> wget_input\n";
>
> printf OUTPUTFILE "$path";
>
> close OUTPUTFILE;
In place of printing it to the screen, print it to your OUTPUTFILE in
your loop. Using your code, that'd be something like:
open (OUTPUTFILE,">wget_input")|| die "Failed to open wget_input: $!\n";
#include reason
for ($count .. 10)
{
substr ($path, rindex ($path, ".") - 1, 1, $count++);
print OUTPUTFILE "$path\n";
}
close (OUTPUTFILE);
I'd probably get the path, up to the integer, and then just print it and
forget about the multiple calls to substr, or do the index once, and
store it before the for loop.
for ($count .. 10)
{
print OUTPUTFILE $new_path, $count++, ".mp3\n";
}
|