webForumDet fria alternativet

filhantering och rättigheter

2 svar · 466 visningar · startad av Tulork

TulorkMedlem sedan aug. 2004903 inlägg
#1

Det är såhär att vi ska med ett perl program öppna en eller flera filer genom att skriva in sökvägen i kommandotolken. Sökvägarna sparas i en array och öppnas sedan. Efter att de öppnas ska de kollas om de är -r -x -w.

Vi har bara kommit så långt att vi gjort en loop som frågar efter nya sökvägar till filerna helatiden tills end of input. Skriver vi bara in en sökväg funkar det at öppna filen, men inte 2 eller flera.

Vi sitter på ett windows system också vilket kan göra det svårt att kolla om filerna är -r -w -x- detta är koden

#!/usr/local/bin/perl
print "Skriv in den sokvag du har till din fil\n";
do{
$text = <STDIN>;
@inmatning = ($text, @inmatning);

chomp @inmatning;
}
until $text eq "\n";

open FH, "<@inmatning";
@indata = <FH>;
close FH;
JojoxxMedlem sedan juni 20004 308 inlägg
#2
#!/usr/local/bin/perl
print "Skriv in den sokvag du har till din fil\n";
do{
	$text = <STDIN>;
	chomp $text;
	push @inmatning,$text;
}
until $text eq "";

foreach (@inmatning) {
	open FH, $_;
	@indata = <FH>;
	# Gör något med @indata;
	close FH;
}

open tar inte emot en array som filnamn, så du måste loopa igenom alla filer.

JojoxxMedlem sedan juni 20004 308 inlägg
#3

Anm. Du kan använda Win32::File för att sätta RASH-attributen (windows har inte x)

128 ms totalt · 3 externa anrop · v20260731065814-full.fb544a5a
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
124 ms — hämta tråd, inlägg och bilagor (db)