Use of uninitialized value in chdir

Status
Niet open voor verdere reacties.

quickn

Nieuwe gebruiker
Lid geworden
22 sep 2007
Berichten
2
Bovenstaande melding en nog meer krijg ik bij het uitvoeren van onderstaand script:
Code:
#!/usr/local/perl
use strict;
use warnings;
#chdir $ARGV[0] or die "$!";
chdir ($ARGV[0]) or die "$!";
my @html_files = glob("*.html");

foreach (@html_files) {
my $new_name = $_;
$new_name =~ s/(.+)\.html/\U$1\E.html/; #put file name in capitals
$new_name =~ s/(PERLBP)(.+)/\L$1\E$2/; #put perlb in lower case
symlink $_, $new_name;
}
De bedoeling is om bestandsnamen allemaal in upper- of lower case te zetten. Ja ik ben helemaal niet goed in Perl. Nu had ik het orginele script al aangepast tot dit. De double quotes (") stonden er anders in. Dit loste de eerste 2 foutmeldingen al op. :)

Nu krijg ik:
Code:
pieter@tux:~/chm$ perl htmlcapital
Use of uninitialized value in chdir at htmlcapital line 5.
Use of chdir('') or chdir(undef) as chdir() is deprecated at htmlcapital line 5.
pieter@tux:~/chm$
Nu weet ik het niet meer. Het is op dit moment te lastig voor mij. Als ik het goed begrijp ligt het aan het gebruik van chdir. Heb opgezocht hoe dat werkt maar daar kan ik maar weinig "chocolade" van maken.

alvast bedankt,

Pieter
 
Je doet:

prompt: perl htmlcapital

ik neem even aan dat 'htmlcapital' de programmanaam is (geen extensie .pl of .cgi??)

maar hij leest de map '$ARGV[0]' uit... dus je moet de map opgeven:

prompt: perl htmlcapital demap

nu zit in $ARGV[0] 'demap' die uitgelezen wordt..
 
Bedankt dat er iemand reageert. Blijkbaar is Perl moeilijker dan ik dacht :shocked:

...
nu zit in $ARGV[0] 'demap' die uitgelezen wordt..

Dus als ik het goed begrijp is het de bedoeling dat ik de map opgeef van de html bestanden. een voorbeeld is dan:
prompt: perl htmlcapital c:\test\

Zou mooi zijn als het werkt. Ik wordt niet goed van het feit dat ik op de windows pc geen chm bestanden goed kan lezen. Nu worden ze wel geopend en de boomstructuur kan ik zien maar niet de bladzijden lezen.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan