On Wednesday, June 12, 2002, at 06:39 , David T-G wrote:
[..]
>   my                                          # vars we will use
>     (
>     $m3u,                                             # file name
>     $mp3,                                             # disk label
>     $source,$host,                            # where we got it
>     $artist,$disk,$track,                             # the real data :-)
>     @allsources, @allhosts,                   # where we get 'em
>     $fullpath,                                        # hash key
>     @working,                                 # stripped copy of $fullpath
>     %threez,                                  # hash that holds DB record
>     ) = "" ;
>
>   $m3u = $source = $host = "" ;                       # what can't be undef

Let's step back and do a quick review here:

things on the left hand side of an "=" that have
a (...) are 'in a list context' - hence they are trying
to deal with things on the right hand side of that as
if they were in a list context:

        my ($foo, $bar, @junk) = subThatHandsBackListOfStuff(@arglist);

but you have written your kvetch in the form

        <list_context> = <scalar_context>

vice say

        my ($foo, $bar, @junk, %hash ) = ( ' ', ' ', (), ());

also as I think we are all agreeing, if your choice of
variable names are not in themselves clear enough, then
opting for the simpler pre-definition form of

        my $foo = '';   # you know, for the foo stuff

would seem to be more reasonable.


But i think we all generally agree that it is better to
DO the appropriate scoping for a variable - vice having
a generic stack of them defined 'globally' - and counting
on 'side effect' to change them...

hence you might think of solving the problem with say

   while (<>)
   {
     my ($artist, $album, $track) = split(/\//);
        if ( $track ) {
        if ( $track eq "foo" )
        ...
        } else {
                blowChow("bad record with $artist, $album - missing Track\n");
        }
   }

OR how about

        my $dataStuff = GetRecordsFrom($filename);

Then process that with the

        if ( $dataStuff->{'track'} .... )


ciao
drieux

---


-- 
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to