Schrift
[thread]8398[/thread]

unterverzeichnis anlegen (Seite 4)

Leser: 2


<< |< 1 2 3 4 >| >> 40 Einträge, 4 Seiten
Noisebreath
 2006-10-10 16:58
#70616 #70616
User since
2006-04-14
72 Artikel
BenutzerIn
[default_avatar]
Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
my $path1;

if($Zeilen[3]){
$path1 = $Zeilen[3];
}else{
$path1 = "C:/Temp";
}

mkdir($path1) or die "Fehler beim Anlegen von $path1:". $!;
my $file = $path1.'/index.html';
open(my $fh,'>',$file) or die $!;

my $path2 = $path1."/html/";
mkdir($path2);

my $string = '<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd"><html><head><title>'.$file.'</title></head><body>';


Der Fehler wird für jede Zeile in der dann $string steht ausgespuckt wenn ich es so schreibe:
Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
my $path1;

if($Zeilen[3]){
$path1 = $Zeilen[3];
}else{
$path1 = "C:/Temp";
}
eval{
mkdir($path1);
}
my $file = $path1.'/index.html';
open(my $fh,'>',$file) or die $!;

my $path2 = $path1."/html/";
eval{
mkdir($path2);
}
renee
 2006-10-10 17:11
#70617 #70617
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
Sorry, nach dem eval-Block gehört noch ein Semikolon. Also:
Code: (dl )
1
2
3
eval{
mkdir($path1);
};
OTRS-Erweiterungen (http://feature-addons.de/)
Frankfurt Perlmongers (http://frankfurt.pm/)
--

Unterlagen OTRS-Workshop 2012: http://otrs.perl-services.de/workshop.html
Perl-Entwicklung: http://perl-services.de/
nepos
 2006-10-10 17:21
#70618 #70618
User since
2005-08-17
1420 Artikel
BenutzerIn
[Homepage] [default_avatar]
Waers nicht sinnvoller, einfach mit -e zu pruefen, ob das Verzeichnis schon existiert, statt mkdir in nem eval auszufuehren?
renee
 2006-10-10 17:27
#70619 #70619
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
TIMTOWTDI ;)
OTRS-Erweiterungen (http://feature-addons.de/)
Frankfurt Perlmongers (http://frankfurt.pm/)
--

Unterlagen OTRS-Workshop 2012: http://otrs.perl-services.de/workshop.html
Perl-Entwicklung: http://perl-services.de/
sid burn
 2006-10-10 17:41
#70620 #70620
User since
2006-03-29
1520 Artikel
BenutzerIn

user image
Warum sollte man in diesem beispiel überhaupt eval{} nehmen? mkdir bricht doch gar nicht mit einem die() ab.

Code: (dl )
1
2
3
4
5
6
if ( mkdir '/boot' ) {
print "Geht.\n";
}
else {
print "Geht Nicht: $!\n";
}


oder kürzer:
Code: (dl )
1
2
3
(mkdir '/boot') ?
print "Geht.\n" :
print "Geht Nicht: $!\n";


Vor allem geht das mit eval() nichtmal, wie ich gerade sehe. Ist ja auch logisch. ;) Das mkdir() letztendlich nicht geht, bedeutet ja nicht das $@ gesetzt wird, das bleibt Leer. Stimmt, wenn man ein "or die..." dran hängt würde eval() wieder gehen.\n\n

<!--EDIT|sid burn|1160488125-->
Nicht mehr aktiv. Bei Kontakt: ICQ: 404181669 E-Mail: perl@david-raab.de
renee
 2006-10-10 17:45
#70621 #70621
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
stimmt, es stirbt nur wenn man es mit or die ... aufruft...
OTRS-Erweiterungen (http://feature-addons.de/)
Frankfurt Perlmongers (http://frankfurt.pm/)
--

Unterlagen OTRS-Workshop 2012: http://otrs.perl-services.de/workshop.html
Perl-Entwicklung: http://perl-services.de/
Noisebreath
 2006-10-10 17:48
#70622 #70622
User since
2006-04-14
72 Artikel
BenutzerIn
[default_avatar]
danke vielmals und sorry wenn ich manchmal etwas ungestüm gefragt habe :)
Noisebreath
 2006-10-11 15:10
#70623 #70623
User since
2006-04-14
72 Artikel
BenutzerIn
[default_avatar]
noch eine Frage wenns recht ist :

Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
open(DATEI, "<infos.txt") || die "Datei nicht gefunden";
chomp(my @Zeilen = <DATEI>);
close(DATEI);

my $path1;
# Angegeben Pfad erstellen

if($Zeilen[3]){
$path1 = $Zeilen[3];
}else{
$path1 = "C:\\Windows/Temp/main";
}
eval{
mkdir($path1);
};

my $path2 = $path1."/html/";
eval{
mkdir($path2);
};

my $file = $path1.'/index.html';
open(my $fh,'>',$file) or die $!; ####line 86####


Komischerweise funktioniert alles wenn nur eine Directory angegeben ist z.B.: $path1 = C:\Temp. Wenn aber zb.: $path1 = C:\Temp\asdf angegeben ist sagt er:
No such file or directory at main.pl line 86.

Ich dachte mkdir kann egal wie tief das Verzeichnis ist alles herstellen oder seh ich da was falsch bzw hab nen logischen fehler?
renee
 2006-10-11 15:17
#70624 #70624
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
[quote=renee,07.10.2006, 18:23]Und wenn ein ganzer Verzeichnisbaum angelegt werden soll, sollte man sich mal CPAN:File::Path anschauen...[/quote]
Deshalb hatte ich Dir schon am Anfang das hier empfohlen:
OTRS-Erweiterungen (http://feature-addons.de/)
Frankfurt Perlmongers (http://frankfurt.pm/)
--

Unterlagen OTRS-Workshop 2012: http://otrs.perl-services.de/workshop.html
Perl-Entwicklung: http://perl-services.de/
Noisebreath
 2006-10-11 15:26
#70625 #70625
User since
2006-04-14
72 Artikel
BenutzerIn
[default_avatar]
danke sehr! hast recht jetzt gehts auch :)
<< |< 1 2 3 4 >| >> 40 Einträge, 4 Seiten



View all threads created 2006-10-06 19:37.