:-)

$_ is basically the first variable of @_ which is the array that Perl is
currently working on.

So when your script is complaining about something in $_[3] what it is
saying is that the 4th variable (Perl starts counting at 0) in the @_ array
is making the compiler unhappy.

I hope this helps a bit.
Look at line 83 of your code as you are using $_[3] in comparison, but $_[3]
might be undefined which will cause your interpeter to scream at you.



On 9/18/07, Ryan Moszynski <[EMAIL PROTECTED]> wrote:
>
> hi,
> i'm using a perl script i found to change the names of batches of
> files.  The program works as is but it's giving me a weird warning.
> I'm familiar with $_, but not $_[3].  Can someone explain what $_[3]
> is, and how i can get this script to stop throwning the warning?
>
> Thanks,
>
> Ryan
>
> i found the file here:
>
> http://noisybox.net/computers/eren/
>
> file download link:
> http://noisybox.net/computers/eren/eren.pl
>
> warning thrown:
> Use of uninitialized value in pattern match (m//) at C:\pPerl\eren.pl line
> 82.
>
> (i changed the file a bit so it won't be the same line number if you
> checkout the whole file)
>
> code from my file:
>
> 76 foreach my $file (@files){
> 77      next if -d($root . $file);
> 78
> 79      next if (($preview) and not ($file =~ /$filefilter/));
> 80      @_ = split /\//, $replacestr;
> 81      my $icase = '';
> 82      ($_[3] =~ /i/) and $icase = 'i';
> #**************************************************
> 83      my $cmd = sprintf("\$file =~ /%s/%s;", $_[1], $icase);
> 84
> 85      next if not eval $cmd;
> 86
> 87      $preview and print "PREVIEW: ";
> 88      $matchct++;
> 89
> 90      my $oldfile = $file;
> 91      print "$oldfile --> ";
> 92      $file =~ eval " \$file =~ s$replacestr;";
> 93      print "$file\n";
> 94      $preview and next;
> 95      rename($root . $oldfile, $root . $file) or print "Failed to rename
> $root$oldfile\n";
> 96 }
>
> --
> To unsubscribe, e-mail: [EMAIL PROTECTED]
> For additional commands, e-mail: [EMAIL PROTECTED]
> http://learn.perl.org/
>
>
>

Reply via email to